ในบทความนี้เราจะขอต่อยอดจากบทความก่อนหน้า ( Command เบื้องต้นสำหรับผู้ดูแล Server (Linux) – Part 1) ซึ่งในบทความนี้ เราได้รวบรวมคำสั่งที่จำเป็นสำหรับผู้ใช้งาน Server (Linuux) ระดับ Admin หรือผู้ที่สนใจ โดยจะเป็นการอธิบายถึงรูปแบบการใช้งานของคำสั่งต่างๆ เพื่อให้ทุกท่านได้นำไปปรับใช้งานกัน
uname
คำสั่งสำหรับใช้ในการแสดงข้อมูลของ Server
– แสดงชื่อระบบปฏิบัติการ
# uname
สำหรับออฟชั่นเพิ่มเติม
– แสดงข้อมูลของระบบโดยรวมอย่างละเอียด
# uname -a
– แสดงข้อมูลเวอร์ชั่นของ kernel
# uname -r
hostname
คำสั่งสำหรับใช้ในการแสดงชื่อของระบบโฮสต์ปัจจุบัน
# hostname
หรือท่านสามารถเปลี่ยนชื่อ Hostname แบบชั่วคราวได้โดยใช้คำสั่ง
# hostname [ค่า hostname ที่ต้องการตั้งค่า] ตัวอย่างเช่น # hostname cloud04.thaivs.com
dmidecode
คำสั่งสำหรับใช้ในการแสดงข้อมูลอุปกรณ์ต่างๆ ในเครื่อง Server เช่น ข้อมูล Bios, CPU, Memory เป็นต้น
ตัวอย่างการใช้คำสั่ง ดังนี้
– แสดงข้อมูลเวอร์ชั่นของ Bios ที่ใช้งานอยู่
# dmidecode -s bios-version
– แสดงข้อมูลของ CPU
# dmidecode -t processor
– แสดงข้อมูลของ Memory
# dmidecode -t memory
sar
คำสั่งสำหรับแสดงรายงาน หรือตรวจสอบสถานะของระบบ Server เช่น สถิติการใช้งานของ CPU, Memory, Disk และ อุปกรณ์ I/O (Input/Output) ต่างๆ โดยสามารถใช้ข้อมูลในการตรวจสอบสถานะของ server ย้อนหลัง หรือ เรียลไทม์ได้
ตัวอย่าง ผลลัพธ์จากคำสั่ง sar เพื่อตรวจสอบเปอร์เซ็นการใช้งานของ CPU โดยวัดค่าทุกๆ 15 วินาที จำนวน 3 ครั้ง
# sar 15 3
สำหรับออฟชั่นเพิ่มเติม
– แสดงรายละเอียดของค่า SWAP SPACE และรายงานสถานะปัจจุบัน
# sar -S
– แสดงข้อมูลการใช้งาน CPU แบบรายวัน สามารถเพิ่มออฟชั่น -f ตัวอย่างเช่นวันที่ 09/04/2561
# sar -f /var/log/sa/sa09
– แสดงข้อมูลการใช้งาน Memory สถานะปัจจุบัน
# sar -r
– แสดงจำนวนคิวของทาสก์ที่มีรอการทำงาน, จำนวนทาสก์ และค่าโหลดเฉลี่ยปัจจุบัน การดำเนินการของคำสั่งนี้จะแสดงผลเป็นช่วงเวลา 1 นาที, 5 นาที และ 10 นาที
# sar -q
– แสดงข้อมูลสถิติของเครือข่าย
# sar -n
เมื่อต้องการทราบถึงเครือข่ายที่ใช้งานอยู่ในปัจจุบัน โดยทำการเพิ่ม Keyword หลังออฟชั่น -n
– แสดงรายงานข้อมูลสถิติของเครือข่าย DEV
# sar -n DEV
*** DEV คือ อุปกรณ์เครือข่ายสถิติ เช่น eth0, eth1 เป็นต้น
iostat
คือ คำสั่งสำหรับแสดงรายงาน หรือตรวจสอบสถานะของระบบ Server เช่น สถิติการใช้งานของ CPU, Disk, อุปกรณ์ I/O (input/output) และ NFS
ตัวอย่างผลลัพธ์จากคำสั่ง iostat แสดงข้อมูลเกี่ยวกับการใช้งาน CPU และสถิติของ I/O โดยแยกตาม Partition
# iostat
ip
คำสั่งสำหรับใช้ตรวจสอบที่อยู่ IP และการเชื่อมต่อ Network รวมถึงจัดการเส้นทาง Routing หรือกำหนดค่าต่างๆ สำหรับ Network
– แสดงค่า IP Address ของระบบ
# ip addr
netstat
คำสั่งสำหรับแสดงข้อมูลสถานะการเชื่อมต่อของ Network
สามารถติดตั้งได้โดยใช้คำสั่งต่อไปนี้
# yum whatprovides netstat # yum install net-tools
คำอธิบายผลลัพธ์ที่ปรากฎของคำสั่ง netstat
Proto : โปรโตคอลที่ใช้งานอยู่เป็น TCP หรือ UDP
– TCP คือ Transparent Control Protocol
– UDP คือ User Datagram Protocol
Local Address : หมายเลข IP หรือชื่อเครื่องของท่าน ตามหลังด้วยพอร์ตที่ใช้งานอยู่
Foreign Address : หมายเลข IP หรือชื่อเครื่องปลายทาง ตามหลังด้วยพอร์ตที่ใช้งานอยู่
State : สถานะต่างๆ
– ESTABLISHED คือ สถานะมีการเชื่อมต่อเรียบร้อยแล้ว โดยที่เครื่องต้นทาง (เครื่องของ Client) ทำการเชื่อมต่อกับเครื่องปลายทางด้วยพอร์ตหมายเลขนั้นๆ เรียบร้อยแล้ว
– LISTEN คือ สถานะรอการเชื่อมต่อ
– TIME_WAIT คือ สถานะกำลังสแกนเครื่องของท่าน หรือกำลังพยายามเชื่อมต่อกับท่าน
– SYN_SENT คือ สถานะปิดการเชื่อมต่อ
# netstat
สำหรับออฟชั่นเพิ่มเติม
– แสดงข้อมูลเป็นแบบหมายเลย IP แทนการแสดงข้อมูลแบบชื่อ Hostname
# netstat -n
– แสดงการเชื่อมต่อทั้งหมด เช่น IP address หรือ Port การใช้ออฟชั่น -a นั้น ข้อมูลที่ปรากฎจะแสดงเป็นแบบชื่อ Hostname แทนการแสดงเป็นข้อมูล IP address โดยตรง
# netstat -a
– แสดงการเชื่อมต่อใน Protocol นั้นๆ เช่น TCP, UDP, TCPv6, UDPv6 เป็นต้น
# netstat -p
ลักษณะของการใช้งาน ยกตัวอย่างเช่น
– แสดงข้อมูลเฉพาะของ Protocol : TCP หรือหากต้องการให้แสดง Protocol อื่นๆ สามารถเปลี่ยน TCP เป็น Protocol ที่ต้องการได้
# netstat -p --tcp
– แสดงข้อมูลของ Routing Table ของเครื่อง Server
# netstat -r
traceroute
คำสั่งสำหรับแสดงเส้นทางของ Network ว่ามีการเชื่อมต่อไป Server ใดบ้าง ก่อนที่จะเดินทางไปถึง Server ปลายทาง ซึ่งผลลัพธ์ที่ปรากฎจะแสดงทั้งหมายเลข IP ปลายทาง รวมถึงระยะเวลาในการประมวลผลในแต่ละช่วงด้วย
สามารถติดตั้งได้โดยใช้คำสั่งต่อไปนี้
# yum install traceroute -y
– แสดง IP ของเครื่องที่ถูกเชื่อมต่อทั้งหมด ไปยังเครื่องปลายทาง
# traceroute [ค่า Server ปลายทาง] ตัวอย่างเช่น # traceroute google.com
free
คำสั่งสำหรับแสดงข้อมูลการใช้งานของ Memory
# free
สามารถเพิ่มออฟชั่น -h ต่อท้ายเพื่อแสดงหน่วยการใช้งาน ซึ่งจะทำให้เข้าใจผลลัพธ์ได้ง่ายยิ่งขึ้น
# free -h
หรือหากต้องการให้ข้อมูลที่แสดงบนหน้าจอมีหน่วยเป็น Megabytes (MB) หรือ Kilobytes (KB) สามารถเพิ่มออฟชั่น -m
# free -m
# free -k
vmstat
คำสั่งสำหรับตรวจสอบประสิทธิภาพของระบบ เช่น Processor, Memory, Paging และ CPU Activity เป็นต้น ซึ่งคำสั่งนี้สามารถใช้เป็นคำสั่งทางเลือกหนึ่งในการ Monitor ของระบบ linux ได้
ตัวอย่างการใช้คำสั่ง เช่น ให้แสดงผลทุกๆ 1 วินาที จำนวน 5 ครั้ง
# vmstat 1 5
คำอธิบายผลลัพธ์ที่ปรากฎ
ในส่วนของ Processor
r > 0 คือสถานะในขณะนั้นมีปัญหา เช่น Processor Overload
b > 0 คือสถานะในขณะนั้นเกิดปัญหาจาก I/O เช่น Harddisk ช้าเกินไป
ในส่วนของ CPU
id คือ สถานะของ CPU ในส่วนที่ยังไม่มีการใช้งาน ซึ่งหากมีตัวเลขมากยิ่งดี
wa คือ สถานะรอการเขียนของ I/O ซึ่งหากมีตัวเลขน้อยยิ่งดี
dig
คำสั่งสำหรับแสดงข้อมูลรายละเอียดของโดเมน หรือตรวจสอบค่า DNS ว่าสามารถใช้งานได้หรือไม่
สามารถติดตั้งได้โดยใช้คำสั่งต่อไปนี้
# yum install bind-utils
– แสดงรายละเอียดค่า DNS ว่ามีการใช้งานอยู่ที่ใด และหมายเลข IP ใด
# dig [ค่าโดเมน] ตัวอย่างเช่น # dig google.com
– แสดงข้อมูลค่า MX Record สำหรับการรับ-ส่งอีเมล์ของ Server โดเมน google.com โดยทำการดึงข้อมูลจาก Server 8.8.8.8
# dig MX google.com @8.8.8.8
whois
คำสั่งสำหรับแสดงผลและตรวจสอบข้อมูลของผู้ใช้งานโดเมน ซึ่งหากต้องการทราบว่าโดเมนมีการจดบริการไว้กับที่ใด หรือต้องการทราบว่ามีการชี้ค่า Name Server ไปที่ใด
# whois [ค่าโดเมน] ตัวอย่างเช่น # whois google.com
tar
คำสั่งสำหรับใช้ในการบีบอัดไฟล์หรือไดเร็กทอรีให้เป็นไฟล์เดียว โดยที่ทำให้ไฟล์นั้นๆ มีขนาดเล็กลง ซึ่งจะทำให้ย้ายไฟล์ได้สะดวกมากขึ้น
– ทำการบีบอัดไฟล์ชื่อ backuptest.tar โดยการรวมทั้งไดเร็กทอรีชื่อ filename1, filename2 และไฟล์ชื่อ filetest เข้าไว้ด้วยกัน โดยใช้คำสั่ง
# tar -cvf backuptest.tar filename1 filename2 filetest
หากต้องการแตกไฟล์ ท่านสามารถใช้คำสั่ง
# tar xvf backuptest.tar
– ทำการบีบอัดไฟล์ชื่อ backuptest.tar.gz โดยการรวมทั้งไดเร็กทอรีชื่อ filename1, filename2 และไฟล์ชื่อ filetest เข้าไว้ด้วยกัน โดยใช้คำสั่ง
# tar cvfz backuptest.tar.gz filename1 filename2 filetest
หากต้องการแตกไฟล์ ท่านสามารถใช้คำสั่ง
# tar zxvf backuptest.tar.gz
หากท่านต้องการให้แสดงข้อมูลภายในไฟล์ แต่ไม่ต้องการแตกไฟล์ออก สามารถใช้คำสั่ง
# tar -tvf backuptest.tar.gz
gzip
คำสั่งสำหรับบีบอัดข้อมูลไฟล์หรือ การ zip file โดยจะช่วยลดขนาดของไฟล์ลงตามระดับที่กำหนด ข้อมูลของไฟล์ที่ได้จะเป็นนามสกุล .gz
– ทำการ zip ไฟล์ข้อมูลที่ชื่อ filetest1
# gzip filetest1
หากต้องการแตกไฟล์ข้อมูล .gz ท่านสามารถเพิ่มออฟชั่น -d
# gzip -d filetest1
unzip
คำสั่งสำหรับแตกไฟล์ .zip หากมีการดาวน์โหลดไฟล์จากเว็บไซต์เป็นไฟล์นามสกุล .zip เมื่อต้องการแตกไฟล์ออก สามารถใช้คำสั่ง unzip ตามด้วยชื่อไฟล์
# unzip latest.zip
wget
คำสั่งสำหรับดาวน์โหลดไฟล์ ซอสโค้ด,ไฟล์หรือโปรแกรมต่างๆ บนเว็บไซต์ มายัง server โดยสามารถใช้คำสั่ง wget แล้วตามด้วย URL ของไฟล์ที่ต้องการ
– ตัวอย่าง เมื่อจะทำการดาวน์โหลด wordpress เพื่อติดตั้งลงบน Server
# wget https://wordpress.org/latest.zip
หากต้องการดาวน์โหลดไฟล์มาเก็บไว้ ซึ่งชื่อไฟล์ส่วนใหญ่ค่อนข้างยาว หรือต้องการเปลี่ยนชื่อไฟล์ เพื่อให้สะดวกต่อการนำไปใช้งาน ในกรณีนี้สามารถเพิ่มออฟชั่น -O เพื่อเปลี่ยนชื่อไฟล์ที่ต้องการดาวน์โหลดได้ทันที
– ทำการเปลี่ยนชื่อไฟล์จาก latest.zip เป็น wordpress-latest.zip
# wget -O wordpress-latest.zip https://wordpress.org/latest.zip
ข้อควรระวัง สำหรับการใช้งานคำสั่งต่อไปนี้ โปรดใช้งานด้วยความระมัดระวัง และจำเป็นต้องใช้ User ในระดับ root ในการใช้งาน
fdisk
คำสั่งสำหรับใช้ในการบริหารจัดการกับ Disk Partition
– แสดงข้อมูล Disk Partition ที่พร้อมใช้งานทั้งหมดบนระบบ Linux โดย Partition จะแสดง ดังตัวอย่างเช่น /dev/vda, /dev/vdb, /dev/vdc เป็นต้น
# fdisk -l
– แสดงข้อมูล Partition ทั้งหมดของ Harddisk โดยการเพิ่มออฟชั่น -l และตามด้วยระบุชื่อ Disk ที่ท่านต้องการ
# fdisk -l /dev/vda1
mount
คำสั่งสำหรับกำหนดช่องทางการเชื่อมต่ออุปกรณ์กับไฟล์ระบบ เพื่อให้ท่านสามารถใช้งานบนระบบได้
หากต้องการให้ไฟล์ระบบที่ชื่อ /dev/vda1 เชื่อมต่อกับอุปกรณ์ที่ชื่อ /disk1 สามารถใช้คำสั่ง
# mount /dev/vda1 /disk1
– เมื่อดำเนินการ mount เรียบร้อยแล้ว หากใช้คำสั่ง df -h ผลลัพธ์ที่ปรากฎจะแสดงข้อมูล ดังรูป ซึ่งแสดงว่ามีการ mount เรียบร้อย และสามารถใช้งาน /dev/vda1 ผ่าน /disk1
umount
คำสั่งสำหรับใช้ในการยกเลิกการ mount
ดำเนินการยกเลิกการเชื่อมต่ออุปกรณ์ /disk1 ด้วยคำสั่ง
# umount /disk1
หากต้องการจะตรวจสอบให้แน่ใจว่าดำเนินการ umount เสร็จสมบูรณ์แล้วจริงหรือไม่ ให้ใช้คำสั่ง df -h อีกครั้ง ผลลัพธ์ที่แสดงจะไม่พบข้อมูล /disk1 บนหน้าจอ
กรณีที่ยังมีการเรียกใช้งานข้อมูลใดๆ ใน ไดเร็กทอรี /disk1 ระบบจะไม่สามารถ umount การเชื่อมต่ออุปกรณ์ได้
fsck
คำสั่งสำหรับใช้ในการตรวจสอบและซ่อมแซมไฟล์ระบบของ Linux
หากต้องการจะซ่อมแซมไฟล์ระบบที่เสียหาย ให้ดำเนินการ umount Disk ที่ต้องการ fsck ก่อน แล้วจึงจะเริ่มใช้งานคำสั่ง
# fsck /dev/vda2
– แสดงข้อมูลการซ่อมแซมเสร็จสิ้น ดังรูป
สามารถเพิ่มออฟชั่น -y เพื่อให้ระบบดำเนินการแก้ไขความเสียหายที่ตรวจสอบพบโดยอัติโนมัติ
# fsck -y /dev/vdc2
ทาง HostPacific หวังว่าวิธีการใช้งานคำสั่งในบทความนี้ จะเป็นประโยชน์สำหรับ Admin หรือผู้ที่สนใจทุกท่าน เพื่อใช้เป็นแนวทางในการประยุกต์ใช้คำสั่งในการปรับประสิทธิภาพและตรวจสอบ Server ต่อไป