วันศุกร์ที่ 25 เมษายน พ.ศ. 2557

script สำหรับเช็ค freeradius stop แล้วให้ start

สอบถาม shell script ตั้งเวลาใน crontab ไม่ได้ครับ..ตั้งชื่อไฟล์ไว้ที่ /root/freeradius.sh สั่ง chmod +x แล้ว
#!/bin/sh
##### freeradius check ######
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
if pgrep freeradius 2>&1 >/dev/null;then echo ok;else /etc/init.d/freeradius start;fi
##
##
##
ตั้งเวลาใน crontab มันไม่ทำงานนะครับ log มันขึ้นอย่างนี้นะครับ
Apr 25 15:53:01 pyo1 CRON[27691]: (root) CMD (/bin/sh /root/freeradius.sh)
Apr 25 15:53:01 pyo1 CRON[27688]: (CRON) info (No MTA installed, discarding output)
แสดงว่า cron ทำงานแต่ในไฟล์ script มันมีอะไรผิดพลาด หาจนตาลายหมดแล้วครับ..ไม่รู้เกิดอะไรขึ้น..

แต่เวลาผมสั่ง #sh /root/freeradius.sh ไฟล์ script ดังกล่าวสามารถทำงานได้ปกตินะครับ...แสดง echo OK ได้ปกติ


ผู้ตอบ....Keigo Thaiadmin VIP

Script ทำงานปกติครับ

โดยปกติแล้ว cron จะ email terminal output แต่เครื่องของคุณตอนนี้ไม่ได้ติดตั้ง MTA ไว้ (postfix/sendmail) ทำให้ cron ส่ง output ออกไปไม่ได้

ถ้าไม่อยากติดตั้ง MTA แต่มี GUI อาจจะใช้ notify-send

*/30 * * * * DISPLAY=:0 notify-send "$(/bin/sh /root/freeradius.sh)"

ถ้าไม่งั้นลอง redirect output ออก terminal เลยก็ได้ครับ เช่น

# tty
/dev/pts/

*/30 * * * * /bin/sh /root/freeradius.sh > /dev/pts/0