Bash编程笔记:swatchdog for WD-MBWE

Linux BusyBox 果真是个强大的东西。只要想做,什么都能做出来。正好最近正愁 My Book 的服务总是莫名其妙的挂掉,搞的在单位都无法访问文件。操起简单的 vi,开始制作 Bash Watchdog。(之所以没用 Perl,是考虑到 Perl 在预编译的时候比较耗费系统资源)

经过三个小时的现学现卖,雏形版的 Bash Watchdog - swatchdog 出炉。

[code lang="bash" title="/usr/sbin/swatchdog"]
#! /bin/bash
#
# Watchdog for system service
#

while [ 0 ]
do
for PROC
do
PID=`ps -aef | grep -v grep | grep -v swatchdog | grep "$PROC"`
if [ -z "$PID" ] ; then
TIME=`date "+%Y-%m-%d %H:%M:%S %Z"`
echo "[$TIME] $PROC is not found, rebooting..." >> /etc/swatchdog/reboot.log
reboot
exit 1;
fi
done
sleep 600
done

exit 0;
[/code]

原理很简单,无限循环,检查命令行传入的进程是否存在。如果不存在则重启。

使用也很简单。

[code lang="bash"]
swatchdog cvm transmission amuled
[/code]

自动侦测 cvm(mionet)、transmission 和 amuled。

添加新评论