X
Change of support channel during COVID-19

ในบทความนี้เราจะขอต่อยอดจากบทความก่อนหน้า ( 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 ต่อไป