Shell Script
posted on 09 Jun 2008 14:56 by tudtu25 in Command
โอ้ยปวดหลัง ปวดเอว
เฮ้อเหนื่อย อิอิ บ่นๆนะครับพี่น้อง เอาล่ะ วันนี้หลังจากที่อ่านมั้งไม่อ่านมั้งมานานก็ได้ฤกษ์งามยามดี
เชิญท่านประธานขึ้นสู่ยอดเสาร์ เอ้า เอ้า เอ้า อ้าวววว ไม่ช่ายย ก็ลงมือเขียน shell script มั้ง
พอดีไปเจอมา นะ ไม่ได้คิดเองหรอก เอามาโมเอา หลังจากที่ service imap ของ server มันเดี้ยงบ่อยนัก
เลยไม่รู้จะทำไงไม่ให้ต้องมานั่งซ่อมมัน ซ่อมก็ได้บ้างไม่ได้บ้าง (ไม่ได้ก็บูทใหม่มันเลย งิงิ) วันนี้เลยจับยัด
script ให้มันรู้แล้วรู้รอดไปเลย เริ่มเลยละกัน
#vi /root/check-service.sh
ใส่ลงไปตามนั้น ส่วนเรื่องของ SERVICE='อะไรนั้น' แล้วแต่จะเช็ค
#!bin/sh
SERVICE='imap'
if ps ax | grep -v | grep $SERVICE > /dev/null
then
echo "$SERVICE service runing $(date +%Y%m%d %H : %M) everything this file"
else
echo "$SERVICE is not runing"
service $SERVICE stop
service $SERVICE start
echo "$SERVICE is not runing $(date +%Y%m%d %H : %M) And Restart Complete" |mail -s $SERVICE down" your@yourdomain.com
/root/check-service.sh
fi
เสร็จแล้ว แก้ crontab -e เพื่อให้รันตรวจสอบทุกๆนาที อันนี้แล้วแต่กำหนดนะครับ ถ้าคิดว่าไม่ชอบซอยถี่ไปก็ทุก 5 - 10 นาทีก็ได้ แต่ถ้า imap ไม่ทำงานจริงๆละก็ รอถึง 5 นาทีคงอึดอัดหน่อย(Sale บ่น ระนาว เซ็งเป็ด)
#crontab -e
* * * * * /root/check-service.sh
save แล้ว service httpd restart
มาทำการรันดูนะครับ
#./root/check-service.sh
ถ้า output เป็น
imap service runing ปปปปดดวว ชช : นน everything this file
แสดงว่า imap เรายังทำงานอยู่แต่ถ้าเราลอง stop imap ดู
#service imap stop
แล้วลองรันดูใหม่
ถ้าoutput ออกมาว่า
imap service runing ปปปปดดวว ชช:นน
Auto Restart Complete!
imap service runing, everything this file
แสดงว่าได้ และลองไปเช๊คเมลล์ที่ให้ระบบส่งไปดู
Enjoy Enไก่ Enงัว Enเป็ด
แจ้งข่าวละกัน จากที่ลองเขียนได้สองวัน
demasg ดูปรากฎว่า เปิดปิด session root ตลอดเวลา และแล้ว server ก็ down ลง หาสาเหตุดูแล้ว
ทั้งตู้ดับเครื่องเดียว น่าจะเป็นปัญหาภายใน เลยเช๊คดู ลองบูทเครื่องใหม่ ไม่ถึง 1 ชั่วโมง แรม 3 GB โดน
used ไป 2.5 GB เอ้ย ได้ไง เลยไปยกเลิก crontab ดู แล้วรีบูท ดู Session root หยุดรัน กินแรมน้อยลง
ถ้าพี่น้องจะลองเขียนแล้วรันดู แล้วมาบอกกันมั้งนะครับว่าใครเป็นอย่างผมมั้ง
#dmasg
Jun 8 15:01:01 userdomain crond(pam_unix)[29908]: session opened for user root by (uid=0)
Jun 8 15:01:01 userdomain crond(pam_unix)[29908]: session closed for user root
Jun 8 16:01:01 userdomain crond(pam_unix)[5560]: session opened for user root by (uid=0)
Jun 8 16:01:01 userdomain crond(pam_unix)[5560]: session closed for user root
Jun 8 17:01:01 userdomain crond(pam_unix)[13897]: session opened for user root by (uid=0)
Jun 8 17:01:01 userdomain crond(pam_unix)[13897]: session closed for user root
Jun 8 18:01:01 userdomain crond(pam_unix)[22094]: session opened for user root by (uid=0)
Jun 8 18:01:01 userdomain crond(pam_unix)[22094]: session closed for user root
-_-!

ทำงานทุก 30 นาที
วิธีการทำเหมือนกันหรือเปล่า
#1 By itthipol (203.113.1.130) on 2009-07-01 15:15