crontab定时脚本的最小单位是分钟,假设有个实时跟踪服务状态的需求,要求每秒检查某个脚本是否在跑的状态,控制每秒检查的检查的脚本为sec_check.sh:
#!/bin/bash
step=1 #间隔的秒数
for (( i = 0; i < 60; i=(i+step) )); do
sh check_server.sh
sleep $step
done
exit 0
检查服务是否处于运行状态的脚本为check_server.sh如下:
var=`ps -ef|grep 'XXXXX' |grep -v grep|wc -l`
if [ $var -eq 0 ]
then
echo "start process....."
启动服务(sh xxx.sh)
echo "start server....." >>XXXXX.log
fi