Category Archives: ລິນຸກ

ຄຳສັ່ງ MySQL ທີ່ໃຊ້ເລື້ອຍໆ

ບັນຫາໃນການຍ້າຍເຊີບເວີຮອບນີ້ແມ່ນຕ້ອງຈັດການພວກຖານຂໍ້ມູນຫຼາຍຢ່າງ ເພາະຫຼາຍປີກ່ອນ (ກ່ອນໂຄວິດ) ບັນທຶກພາສາທີ່ບໍ່ແມ່ນອັງກິດລົງໄປໃສ່ latin1 ມັນກໍເລີຍອ່ານໃນຖານຂໍ້ມູນບໍ່ໄດ້ ແຕ່ສະແດງຜົນໜ້າເວັບໄດ້ ພໍຫຼາຍປີຕໍ່ມາຈະອັບເກຣດເປັນເວີຊັນໃໝ່ ມັນເຮັດແບບເກົ່າບໍ່ໄດ້ແລ້ວ ໜ້າເວັບຈະສະແດງຂໍ້ມູນຜິດພ້ຽນແບບໃນຖານຂໍ້ມູນ ເຊິ່ງເອີ້ນກັນວ່າບັນຫາ double encoding ກໍເລີຍຕ້ອງໃຊ້ເວລາຫຼາຍອາທິດໃນການຫາທາງແກ້ໄຂ

ຂໍ້ດີກໍຄື ການມີ AI ເຂົ້າມາຊ່ວຍກໍເຮັດໃຫ້ຂັ້ນຕອນຕ່າງໆ ງ່າຍຂຶ້ນພໍສົມຄວນ ແຕ່ AI ກໍບໍ່ໄດ້ສົມບູນເຕັມຮ້ອຍ ກໍເລີຍມີບັນຫາຫຼາຍຢ່າງໂດຍສະເພາະການໃຫ້ຄະແນະນຳຜິດໆ ເພາະມັນຫຼອນໄປເອງ ດັ່ງນັ້ນຈຶ່ງຕ້ອງມາຈົດຄຳສັ່ງທີ່ໃຊ້ເລື້ອຍໆ ເອົາໄວ້ອ້າງອີງໃນເທື່ອຕໍ່ໄປ

watch -n 1 ‘mysql -e “SHOW FULL PROCESSLIST\G”‘

ຄຳສັ່ງນີ້ຄ້າຍໆ top ກົດແລ້ວມັນຈະສະແດງສະຖານະການເຮັດວຽກຂອງ mysql ເພາະບາງເທື່ອເຮັດໆ ໄປແລ້ວມັນຄ້າງໄປເລີຍ ຕ້ອງເປີດອີກເຊດຊັນມາກວດເບິ່ງວ່າມັນເຮັດຫຍັງຢູ່ ຫຼື ຖ້າຈະເບິ່ງແບບເທື່ອດຽວຈົບກໍໃຊ້ຄຳສັ່ງ mysql -e “SHOW FULL PROCESSLIST\G” ກໍໄດ້

ອີກຄຳສັ່ງທີ່ໜ້າສົນໃຈແມ່ນ zstdcat smf_backup_2025.sql.zst |
sed -n ‘/DROP TABLE IF EXISTS smf_topics/,$p’ |
zstd -T0 -o smf_topics_tail.sql.zst

ຄຳສັ່ງນີ້ຈະແຍກເອົາຕາຕະລາງຊື່ smf_topics ອອກມາຈາກໄຟລ໌ smf_backup_2025.sql.zst ແລ້ວບັນທຶກເປັນໄຟລ໌ smf_topics_tail.sql.zst ເພື່ອໃຫ້ເຮົາໄດ້ສະເພາະບາງຕາຕະລາງທີ່ຕ້ອງການໃນໄຟລ໌ຖານຂໍ້ມູນຂະໜາດໃຫຍ່

ຕອນກວດສອບກໍໃຊ້ຄຳສັ່ງ tail -5 smf_topics_tail.sql ມັນກໍຈະສະແດງ 5 ແຖວສຸດທ້າຍມາໃຫ້ເບິ່ງ ຖ້າມັນຂຶ້ນວ່າ

/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
— Dump completed on …

ກໍແປວ່າແຍກອອກມາຄົບຕາຕະລາງນັ້ນແລ້ວ

ບລັອກອີເມວໃນ WHM ແລະ ລຶບອີເມວໃນຄິວ EXIM

ພົບບັນຫາມີໂດເມນໜຶ່ງໃນ PunlaoHosting ທີ່ສົ່ງອີເມວສະແປມຊົ່ວໂມງລະຫຼາຍໆ ສະບັບ ໜ້າຈະມີບັນຫາກັບ script ທີ່ໃຊ້ ແຕ່ເຈົ້າຂອງເວັບບໍ່ຫວ່າງແກ້ ກໍເລີຍຕ້ອງບລັອກກ່ອນ ເລີຍລອງເຮັດຕາມວິທີນີ້

ຫຼັງຈາກນັ້ນກໍຕ້ອງລຶບອີເມວທີ່ຄ້າງໃນຄິວລະບົບຂອງ EXIM ດ້ວຍວິທີນີ້

ເບິ່ງຈຳນວນອີເມວທີ່ຄ້າງຢູ່

exim -bp | grep -c frozen

ລຶບອີເມວທີ່ຄ້າງດ້ວຍຄຳສັ່ງ

exim -bpr | grep frozen | awk {‘print $3’} | xargs exim -Mrm

ຈາກນັ້ນກວດສອບວ່າຈຳນວນຫຼຸດລົງບໍ່ດ້ວຍຄຳສັ່ງ

exim -bp | grep -c frozen

ຕົບທ້າຍດ້ວຍການຣີສະຕາດ EXIM

service exim restart

tmux ສຳລັບການເຮັດໃຫ້ຄຳສັ່ງເຮັດວຽກຕໍ່ໄດ້ໄປເມື່ອອກຈາກ session

ກ່ອນໜ້ານີ້ມີບັນຫານຶ່ງເວລາເຊື່ອມຕໍ່ ssh ແມ່ນຖ້າເຮົາອອກຈາກ session ແລ້ວຄຳສັ່ງກໍຈະຫຼຸດ ຫຼືບໍ່ຕໍ່ໃຫ້ບໍ່ຫຼຸດກໍມັກຈະຖືກຕັດໂດຍ hangup signal ຂອງລະບົບ ກໍເລີຍໄປຊອກຫາວິທີມາ ປາກົດວ່າມີຫຼາຍໂປຣແກຣມທີ່ຊ່ວຍໄດ້ ບໍ່ວ່າຈະເປັນ screen, nohup ແລ້ວກໍ tmux ໂດຍໂຕ tmux ເປັນໂຕທີ່ມີຄົນແນະນຳໃຫ້ໃຊ້ຫຼາຍ

ວິທີການກໍບໍ່ຍາກ ສາມາດໂຫຼດມາໄດ້ຈາກ tmux.github.io ຫຼື yum install tmux ຈາກລະບົບເລີຍກໍໄດ້ຖ້າມີ repo ຢູ່ແລ້ວ

ສຳລັບວິທີໃຊ້ກໍງ່າຍໆ ເລີຍ ຈະມີຄຳສັ່ງຢູ່ບໍ່ເທົ່າໃດຄຳສັ່ງທີ່ໃຊ້ເລື້ອຍໆ ກໍຄື

  • tmux — ເປີດໃຊ້ tmux ໂດຍໂປຣແກຣມຈະສ້າງ session ຂຶ້ນມາເອງເລີຍ ເມື່ອເຂົ້າໄປໃນ tmux ແລ້ວຫາກຕ້ອງການອອກ ໃຫ້ກົດ Ctrl + B ຈາກນັ້ນກົດ D ກໍຈະອອກມາ
  • tmux ls — ຫຼັງຈາກອອກມາຈາກ tmux ແລ້ວເຮົາສາມາດກວດເບິ່ງໄດ້ວ່າຕອນນີ້ມີຈັກ session ໃນ tmux ໂດຍໃຊ້ຄຳສັ່ງນີ້ ຈະເຫັນເປັນລາຍຊື່ອອກມາ
  • tmux kill-session -t — ຫາກວ່າເຮົາຕ້ອງການລຶບ session ໃດນຶ່ງ ໃຫ້ເຮົາພິມ ​tmux kill-session -t ຕາມດ້ວຍໝາຍເລກຂອງ session ເຊັ່ນ tmux kill-session -t 0 ກໍຈະເປັນການລຶບ session 0 ອອກໄປຈາກລະບົບ
  • tmux attach — ຫາກເຮົາຕ້ອງການກັບເຂົ້າໄປໃຊ້ session ໃດນຶ່ງທີ່ສ້າງປະໄວ້ ກໍໃຫ້ພິມ tmux attach ຈາກນັ້ນ tmux ຈະພາເຮົາກັບໄປ session ທີ່ເປີດໄວ້
  • tmux attach -t session_name — ຫາກເຮົາມີຫຼາຍ session ເປີດໄວ້ ແລະຕ້ອງການກັບເຂົ້າໄປໂຕໃດນຶ່ງເຈາະຈົງ ກໍພິມ tmux attach -t ຕາມດ້ວຍຊື່ ຫຼືໝາຍເລກຂອງ session

ຄຳສັ່ງອື່ນໆ ເພີ່ມເຕີມສາມາດເບິ່ງໄດ້ຈາກ http://www.dayid.org/os/notes/tm.html

ຕັ້ງຄ່າ iptables ໃຫ້ບລັອກ connection ທີ່ເຊື່ອມຕໍ່ເຂົ້າມາ

ພໍດີກວດເບິ່ງ watchlog ແລ້ວສັງເກດເຫັນມີພຶດຕິກຳ login ແປກໆ ຈາກ IP ຕ່າງໆ ບາງ IP ກໍພະຍາຍາມລັອກອິນເຖິງ 444 ຄັ້ງ (ເຊິ່ງກໍບໍ່ຜ່ານ) ກໍເລີຍຫາທາງບລັອກໄວ້ ໂດຍໃນເບື້ອງຕົ້ນ ຍັງບໍ່ແນ່ໃຈວ່າຈະໃຊ້ວິທີໃດ ໄປຊອກເຫັນວິທີນຶ່ງມາ

iptables -A INPUT -p tcp -i eth0 -m state –state NEW –dport 22 -m recent –update –seconds 3600 -j DROP
iptables -A INPUT -p tcp -i eth0 -m state –state NEW –dport 22 -m recent –set -j ACCEPT

ວິທີນີ້ຈະ drop IP ທີ່ເຊື່ອມຕໍ່ເຂົ້າມາໃໝ່ໃນໄລຍະເວລາ 1 ຊົ່ວໂມງ ກໍໃຊ້ໆ ໄປກ່ອນລະກັນ