另一个就是监控负载均衡器Nginx的shell脚本,用于 Nginx+Keepalived负载均衡高可用环境:
#!/bin/bash
while :
do
nginxpid=`ps -C nginx --no-header | wc -l`
if [ $nginxpid -eq 0 ];then
/usr/local/nginx/sbin/nginx
sleep 5
nginxpid=`ps -C nginx --no-header | wc -l`
if [ $nginxpid -eq 0 ];then
/etc/init.d/keepalived stop
fi
fi
sleep 5
done
另外,这里附带说下crontab的一个妙用:
我在配置一台服务器的iptables时,不小心设置了某一项错误参数,结果锁定了SSH会话,导致我们经理及另一系统管理员员连不上服务器,郁闷之余,看到此法特推荐给大家,极其有用,建议大家学习参考:可以配置一计划任务crontab,每5分钟运行一次,即*/5 * * * * root /bin/sh /root/firestop.sh
firestop.sh内容为
#/bin/bash
service iptables stop
这样即使你的脚本存在错误设置(或丢失的)规则时,也不至于将你锁在计算机外而无法返回与计算机的连接,让你放心大胆的调试你的脚本。
最后说明下Crontab任务的执行环境问题。
尽管可以更改执行 cron 任务時使用的环境,但经常最好创建一個包装脚本,以在运行实际需要的命令前定义任何环境境变量(如PATH)。
这样做的部分原因是出于安全考虑;向 crontab 作业开放的区域越多,越可能得到包含可疑內容的東西。另一个原因是,这样可确保即使更改了环境中的一个依赖关系,你的crontab作仍将执行。
掌握以上crontab的用法后,我相信大家用Linux更可以得心应手,工作更加happy和轻松了,希望这篇文章能给大家的运维工作带来帮助!
【编辑推荐】
【责任编辑:杨赛 TEL:(010)68476606】