最近闲置了一台电脑想着不能浪费于是去gitee翻翻找到了个私有云的开源项目, PHP的很简单就搭起来了贼开心, 界面真漂亮, 香~
只能内网访问当然很不爽啊, 试了下我这里联通宽带上下行对称百兆宽带寻思这不能浪费不是?
于是又一波操作百度搜索到了内网穿透服务natapp(官网地址), 试用了下免费隧道感觉还不错, 于是购入一个VIP_2型隧道以后就可以美滋滋的在外面随时随地访问家里面的文件了;
欢迎新用户使用我的邀请码F0084EFB, 能得到9折优惠还是不错的(顺便让我赚点小积分)
爽了几天之后我有一天在公司突然发现访问不了了, 终于忍到下班回到家检查一下, 发现是natapp掉线了, 访问http响应404;
怎么能行, 我得搞个定时调度检查它, 如果访问不通就重启natapp客户端, 说搞就搞, 既然我的环境是Linux, 那当然使用shell脚本最合适了, 虽然不会, 但是对着菜鸟教程的文档捣鼓半小时还是捣鼓出来了一个能用的脚本;
如下:
#重启function
restartNatapp(){
ID=`ps -ef | grep "natapp -config=" | grep -v "$0" | grep -v "grep" | awk '{print $2}'`
#不存在进程, 启动一个新进程
if test -z "$ID"
then
#natapp客户端位置
cd /usr/local/natapp
nohup ./natapp -config=config.ini -log=stdout -loglevel=ERROR &
return 0
fi
#遍历查找到的natapp进程号
for killId in $ID
do
#保险起见, 小于300的为系统进程, 跳过
if [ $killId -lt 300 ]
then
continue
fi
kill -9 $killId
done
#已全部杀掉natapp进程, 重启
cd /usr/local/natapp
nohup ./natapp -config=config.ini -log=stdout -loglevel=ERROR &
}
## 访问目标网站
URL="http://ovo.s3.natapp.cc"
RESULT=`curl -o /dev/null -s -m 10 --connect-timeout 15 -w "%{http_code}\n" ${URL}`
#返回码404则执行重启natapp操作
if [ $RESULT == '404' ]
then
restartNatapp
fi
#curl正常返回的状态码是302, 如果不是则重启服务
if [ $RESULT != '302' ]
then
restartNatapp
fi
然后我们利用Linux自带的cron定时任务调度器中添加一条自动执行任务
输入:
crontab -e
#然后加入一行
*/5 * * * * /usr/local/natapp/./autoRestartNatapp.sh
然后重新加载服务:
service crond reload
查看当前定时任务:
crontab -l
其他相关命令:
service crond start //启动服务
service crond stop //关闭服务
service crond restart //重启服务
service crond reload //重新载入配置
service crond status //查看服务状态