我已经编写了一个小的(希望如此)简单脚本的一部分,它检查一个URL是否有使用wget返回的错误。然后它将错误输出到一个日志文件中以供警报之用。然后我想做的是让一个服务自动重新启动。
我将通过cronjob每分钟运行一次此检查,因此,如果在重新启动服务后仍有错误,我不希望脚本再次重新启动服务。
有没有一个优雅的方式来实现这一点?
这是我到目前为止所拥有的,一个wget检查,如果错误代码5,输出到health.log文件并重新启动nginx,但是,我不希望在cronjob上运行时每60秒重新启动nginx。
#!bin/bash
URL='http://some-url-here/'
LOG='/var/log/nginx/health.log'
wget -q $URL
if [ $? = 5 ] ; then
echo "$(date). SSL Error." > $LOG
sudo service nginx restart
exit
fi
1条答案
按热度按时间1aaf6o9v1#
假设条件:
restart.log
)就可以了,否则我们可以在$LOG
后面追加一个新行restart
尝试$LOG
(每次脚本运行时,当前代码覆盖/替换整个文件)拟定方法:
restart
的历元时间restart
之前,我们将当前历元与保存的历元进行比较,并且仅在历元的差异大于600秒时才继续(使用restart
)修改OP的当前脚本: