撸linux


Linux下用crontab实现远程阿里云服务器状态监测

远程阿里云ecs服务器上放置了多个网站,一旦被人攻击或其他问题致使服务器长时间没响应,导致多个网站同时无法访问,会大大影响网络营销效果。发生这种故障的时候,让远程服务器自身免疫系统去修复已经不行了,需要人去手动重启之。然而如果不是每时每刻浏览自己的网站,站长怎么知道这种故障什么时候会发生,并且持续了多长时间呢?

为了解决这个问题,需要在自己的电脑里运行一个远程服务器状态的监测工具。小撸曾经在windows下开发过这种网站状态监测工具,花了不少时间去做,仍然是个半成品,然而在Linux下实现起来却很简单,用不到15行的shell脚本,再配合crontab就可以轻松搞定。

#在服务器的某个网站(如www.abcde.cn)下放入一个简单的文本文档(如checkAliyun),里面就包含一行随机字符,比如b85+s90ox2d。
#如果curl的结果包含b85+s90ox2d这些字符,说明连接正常,否则弹出警告提醒窗口
if [[ `curl https://www.abcde.cn/checkAliyun` =~ "b85+s90ox2d" ]]
then
echo "正常";
else
zenity --warning --text="阿里云服务器无法连接"  --width=400 --height=200 --ok-label="现在处理"
#如果在zenity列表对话框选择了“现在处理”,就打开chromium应用,否则直接退出
if [ $? = 0 ]
then
#https://ecs.console.aliyun.com/#/server/region/us-westsome就是阿里云服务器控制台
chromium --app=https://ecs.console.aliyun.com/#/server/region/us-westca
else
exit
fi
fi

以上代码保存为/home/your_user_name/some_folder/checkAliyun.sh文件,然后修改crontab文件,加入以下一行:

2,11,21,32,43,52    *    *    *    *    export DISPLAY=:0.0;sh /home/your_user_name/some_folder/checkAliyun.sh

最后用crontab your_cron_file命令载入到crontab里即可。如果需要更复杂更高级的效果,还可以将监测情况写入log文件、用声音提醒、用xdotool实现全自动等等。如果觉得天天挂着电脑监测太耗电,那就用树莓派一天24小时自动监测岂不是美滋滋?

不懂如何设置crontab的,可以看看本页右侧“相关博文”了解更多。

以上脚本相对简单,如果需要更高级的脚本请打赏本文然后联系我获取。

相关博文



发表评论

电子邮件地址不会被公开。