ใช้คำสั่ง screen ใน linux อย่างไร? by

30
Apr
0

screen คือคำสั่งในการรัน command linux ต่างๆ แบบเปิดทิ้งไว้ แม้เน็ตจะหลุด คอมจะพัง เราก็ยังสามารถ remote มาเปิด session เดิมได้โดยที่มันไม่หายไปดื้อๆ เหมาะอย่างยิ่งสำหรับคนเน็ตไม่เสถียร มีวิธีใช้งานดังนี้ เช่น

screen mysqldump -uroot -pxxx > backup.sql

วิธีการใช้การก็เพียงแค่พิมพ์คำว่า screen นำหน้าคำสั่งที่เราต้องการ เช่น mysqldump เรารู้ว่ามันนานมาก เลยสั่ง screen ไว้ หากกด CTRL+A คำสั่งเริ่มต้นก่อนจะป้อนคำสั่งอื่นๆ ของ screen ไม่อย่างนั้นจะยังเป็นการสั่งไปยัง process ที่ทำงานภายใน screen ไม่ใช่ตัว screen เช่นเดิม แล้วจะมีคำสั่งต่อดังนี้

  • d – ออกจากคำสั่ง screen โดยจะเข้าไปดูต่อวันหลังได้
  • [ - เข้าสู่ copy mode ตรงนี้เมื่อเข้าแล้วจะมีคำสั่งดังต่อไปนี้ (ส่วนใหญ่แทบจะลอกจาก vi มาทั้งดุ้น)
    • u - ออกจาก copy mode
    • h - ขยับ cursor ไปทางซ้าย
    • j - ขยับ cursor ลงข้างล่าง
    • k - ขยับ cursor ขึ้น
    • l - ขยับ cursor ลง
    • G - ขยับ cursor ไปที่ line ที่กำหนด
    • CTRL+u - เลื่อนขึ้นครึ่งหน้า
    • CTRL+d - เลื่อนลงครึ่งหน้า
    • CTRL+b - เลื่อนขึ้นหนึ่งหน้า
    • CTRL+f - เลื่อนลงหนึ่งหน้า
    • / - search จาก cursor ลงไปข้างล่าง (กด n เพื่อ search next)
    • ? - search จาก cursor ขึ้นข้างบน (กด n เพื่อ search next)

และหากกด d เพื่อออกจากคำสั่ง screen ไปแล้ว หรือเน็ตหลุดระหว่าง run screen เราสามารถพิมพ์ "screen -r" เพื่อกลับไปยัง session เดิมที่รันไว้ หรือหากมีหลาย session จะมีข้อความแสดงเช่นดังนี้


There are several suitable screens on:
24146.pts-5.node1 (04/30/13 23:48:40) (Detached)
23909.pts-5.node1 (04/30/13 23:33:22) (Detached)
23817.pts-5.node1 (04/30/13 23:27:58) (Detached)
23647.pts-0.node1 (04/30/13 23:21:36) (Attached)
Type "screen [-d] -r [pid.]tty.host” to resume one of them.

เราอยากเข้าอันไหนก็พิมพ์ตามที่เค้าบอก เช่น "screen -r 23817.pts-5.node1" ก็จะกลับ session ที่ต้องการได้ ไม่เลวเลยใช่ไหมครับ :)

9 เครื่องมือตรวจสอบสถานะ server by

26
Feb
2

จากบทความที่แล้ว Newrelic เครื่องมือสำหรับ monitor server บน Cloud ขั้นเทพ เรามาดูกันต่อด้วย tools ที่เจาะลึกมากขึ้นผ่านทาง shell ดังนี้ครับ

  1. top เครื่องมือหากินที่มีติดมากับ server ทุกตัว ใช้ดู CPU, Memory ของแต่ละ process ได้ เพื่อสังเกตถึงความผิดปกติของ process และยังสั่ง kill process ได้อีกด้วย
  2. prstat -Z ตัวนี้คล้าย top แต่เอาไว้ใช้บน Solaris ครับ จะให้ข้อมูลที่เที่ยงตรงกว่า top แต่ถ้าเป็น linux ตระกูลอื่นก็ใช้ top นั่นแหละ
  3. ps -elf มี process อะไรรันอยู่บ้างด้วย command อะไร
  4. uptime ตรวจสอบว่าเครื่องนี้รันมาโดยไม่ล่มเป็นเวลากี่วันแล้ว
  5. df -h ใช้เช็คพื้นที่ harddisk ที่เหลือ เอาไว้ดูว่าเครื่อง server หรือเครื่อง database ของเราพื้นที่ใกล้เต็มหรือยัง
  6. apachetop -f <access_log_path> ใช้เช็คว่ามี URL ไหนที่ถูกรันถี่เป็นพิเศษ หรือมีการส่งข้อมูลมากเป็นพิเศษในขณะนั้น อันนี้รวมไปถึงถ้าโดนใครยิงถล่ม server ก็สามารถ monitor ได้เช่นกันว่ายิงมาจาก IP ไหน
  7. mysql -u<username> -p แม้แต่ตัวคำสั่ง mysql เองก็สามารถใช้ตรวจสอบสถานะของ Database ได้เช่นกัน หลังจากเราพิมพ์ mysql -uroot -p เข้ามาแล้ว สามารถรันคำสั่งต่างๆ ได้ เช่น
    1. SHOW PROCESSLIST; ใช้ดูสถานะ Query ของ mysql ในขณะนั้น ถ้า table โดน Lock บ่อยมากๆ เราจะเห็นสถานะ LOCK ค้างตอนรันคำสั่งนี้เป็นจำนวนมาก
    2. SHOW STATUS; ใช้ดูสถานะค่าต่างๆ ของ mysql ซึ่งมีอยู่มากมายมหาศาล อ่านรายละเอียดของค่าแต่ละตัวได้ที่นี่
  8. mytop -u <username> -p <password> -d <database_name> เมื่อเรามี top ใน server ก็ต้องมี mytop ใน mysql ตัวนี้เอาไว้ monitor สถานะปัจจุบันของ mysql ได้ทั้ง Query per sec, mysql รันมากี่วัน กี่ชั่วโมงโดยที่ไม่ล่มแล้ว, มีปริมาณ Select/Insert/Update/Delete ในขณะนั้นมากน้อยเพียงใด, มี slow query ไหม, Bytes per sec ฯลฯ มีประโยชน์มากครับ
  9. dtrace อันนี้มีเฉพาะใน Solaris แต่ขอบอกว่าเป็น Tools ที่เทพมากๆ ครับ โดยหากจะใช้เราควรไป Download Dtracetoolkit มา ถ้าใครเคยใช้ Firefox ก็คิอซะว่า Dtrace คือ greasemonkey และ Dtracetoolkit คือชุดของ script สำหรับรันจำนวนมากนั่นเอง ซึ่งภายใน toolkit จะมีหลากหลายภาษาการเขียนโปรแกรมมาให้เป็นจำนวนมาก วิธีใช้จะต้องลง extension ของภาษานั้นๆ เช่นจะใช้งาน dtrace สำหรับ php ต้องลง pecl install dtrace เสียก่อน จึงจะสามารถรัน script ที่ download มาได้ เมื่อรันแล้วจะมีข้อมูลหลายอย่างที่น่าสนใจเช่น function อะไรที่ class ไหนใช้เวลารันไปกี่วินาที รันไปกี่รอบ หรือแม้แต่กิน memory ไปเท่าไร ช่วยให้การหา bottleneck ของโปรแกรมว่าส่วนไหนของโปรแกรมทำงานช้าทำได้ง่ายมากๆ เพราะลงไปถึงระดับ function กันเลยทีเดียว อ่านรายละเอียดเพิ่มเติมได้ที่นี่

ก็ตามนี้ครับ list tools ช่วยตรวจสอบสถานะ server ใครมีปัญหาอะไรก็ลองรันดูเผื่อจะเจออะไรนะครับ tool ทุกตัวที่ผมแนะนำคิดว่าน่าจะมีอยู่ใน server อยู่แล้ว ไม่ต้องติดตั้งอะไรเพิ่มครับ ขอให้โชคดีครับ :)

 เราชนะรอบ 4 | ยืมเงิน 3000 ด่วน | แอพกู้เงิน | แอพเงินด่วน | สินเชื่อออนไลน์อนุมัติทันที | Site Map | กู้เงินก้อน | กระเป๋าตัง | thisshop และ ยืมเงินฉุกเฉิน 5000 ด่วน