เขียน Shell Script แจ้งเตือนเมื่อเครื่อง Server หยุดทำงาน

การเขียน Shell Script แจ้งเตือน เมื่อเครื่อง Server Down


ไม่ได้เขียนบทความมานานแล้วครับ นี่เป็นบทความแรกของผม ภายหลังจากเข้าทำงาน

ตำแหน่ง Network Admin ที่บริษัทผลิตอุปกรณ์เครือข่ายแห่งหนึ่ง...


ทุกคนคงรู้เบื้องต้นแล้วนะครับ หน้าที่ของ Network Admin คือการคอยดูแล และ Monitor
ระบบเครือข่าย ขององค์กร และของลูกค้า เมื่อเกิดปัญหาก็แก้ไขทางเทคนิคต่างๆ เพื่อให้
ระบบสามารถกลับมาใช้งานได้เป็นปกติ โดยเร็วที่สุด...

มาเข้าเรื่องกันครับ โจทย์แรก เลยที่ได้เมื่อมาเข้าทำงาน คือ 

" เขียน Shell Script  เพื่อตรวจสอบสถานะการทำงานของ Router ( Online/Offline ) แล้ว
เก็บ Log การทำงาน โดยถ้าหากพบว่า เครื่อง Router นั้น Down อยู่ ต้องแจ้งเตือน ให้ผู้ที่
เกี่ยวข้องทราบทันทีผ่านทาง Email เป็นต้น "



STEP 1 : วิธีการง่ายที่สุด ที่จะทราบได้ว่าเครื่องปลายทางนั้น Online อยู่หรือไม่?
ก็คือการใช้คำสั่ง Ping และตามด้วย IP เครื่องปลายทางครับ (แหม อันนี้ทุกคนคงรู้อยู่แล้ว)

มาเริ่มกันเลยครับ   


vi iplist.txt       >> สร้างไฟล์เก็บ IP List ที่ต้องการ Ping    *ใช้ editor อื่นๆ ก็ได้ครับ
10.100.255.6
10.100.255.10
10.101.0.2
10.100.0.2
10.100.0.6

>> เพื่อความยืนหยุด สร้างเป็นไฟล์เพื่อเก็บ IP List เลย เพื่อสามารถ เพิ่ม-ลบ ได้ตลอด

STEP 2 : หลังจากที่สร้างไฟล์ เพื่อบันทึก IPList สำเร็จแล้ว ต่อมาเป็นขั้นตอนของการเขียน Script เพื่อเรียกใช้งาน iplist.txt และเขียนคำสั่ง Ping ไปยัง iplist ดังกล่าว เพื่อตรวจสอบสถานะการทำงาน


vi  pinghost.sh         >>  สร้างไฟล์ Shell Script เพื่อเขียนคำสั่ง Ping  
#!/bin/bash
# Ping Script for check status ONLINE/OFFLINE 


cat /pathที่เก็บไฟล์/iplist.txt |  while read output <<pathตำแหน่งที่เก็บไฟล์ iplist.txt
do
    ping -c 5 "$output" > /dev/null   << Ping จำนวน 5 ครั้ง

    if [ $? -eq 0 ]; then
      echo "Host: $output is Online! at $(date)" >> /pathที่เก็บไฟล์/uplog.txt
     
    else
      echo "Host: $output is Down!! at $(date)" >> /pathที่เก็บไฟล์/downlog.txt
   
    fi
done


** ทดสอบรันคำสั่ง Ping Script  เพื่อตรวจสอบการทำงาน
./pinghost.sh         >>  คำสั่งรันไฟล์ pinghost.sh    

มาถึงตอนนี้เราสามารถที่จะ รันคำสั่งเพื่อใช้ทดสอบการทำงานของไฟล์ Ping Script ได้แล้ว
หาก Ping ไปแล้วไม่ Host ปลายทางไม่ตอบสนอง ข้อมูลจะทำการบันทึกไว้ที่ไฟล์ 
downlog.txt เช่น  Host: 10.100.255.6 is Down! at Mon Sep 14 04:45:05 ICT 2015

แต่ถ้าหาก Ping Script เจอเครื่อง Host ปลายทางออนไลน์อยู่ ข้อมูลจะถูกบันทึกไว้ที่ uplog.txt
เช่น Host: 10.100.255.6 is Online! at Mon Sep 14 04:45:05 ICT 2015    เป็นต้น


เพียงแค่นี้ก็สามารถที่จะ ตรวจสอบสถานะของ 
IP Host ปลายทางได้แล้วครับ

ขั้นตอนต่อไปคือ : 
เขียน Crontab เพื่อตั้งว่าให้เครื่องสามารถรันคำสั่ง Ping Script 
ตลอดเวลา หรือ ตามที่เรากำหนด เช่น รัน Script ทุกๆ 5 นาที

และ

เขียน Script แจ้งเตือน Email เมื่อ Ping Host 
ปลายทางแล้วพบว่า สถานะเครื่อง Down อยู่ 

ไว้มาต่อกันที่บทความต่อไปนะครับ :)



เขียนโดย : อัศวิน (Ausawinz)
รูปภาพประกอบ : google>image>Server Down



Share this

Related Posts