最近我们使用Telport作为线上的堡垒机,但是可能由于堡垒机的服务器配置较低(主要是1H2G),所以tp_core程序老是挂掉,因此在这里编写一个脚本做自动重启。具体脚本代码如下:
file_name="/root/tpcore_monitor.log" # 日志文件 name=tp_core # 进程名字 pid=0 proc_num() # 计算进程数 { num=`ps -ef |grep $name | grep -v grep | wc -l` return $num } proc_id() # 进程号 { pid=`ps -ef |grep $name | grep -v grep | awk '{print $2}'` } proc_num number=$? if [ $number -eq 0 ] # 判断进程是否存在 then /usr/local/teleport/bin/tp_core start proc_id # 获取新进程号 echo -e -n ${pid},${proc_name} `date` " exe.\c" >> $file_name # 将新进程号和重启时间记录 else proc_id echo $(date +"%Y-%m-%d %H:%M:%S") '进程存在' ${pid} fi
具体用法如下:
1、服务端创建一个sh文件,例如:restarttpcore.sh
2、对此sh文件进行授权:chmod 777 restarttpcore.sh
3、编写一个crontab脚本进行检测即可。
* * * * * /mnt/shell/restarttpcore.sh
这个crontab是指每秒钟运行一下。
4、然后我们把tp_core杀死下,然后再查询下是否存在
备注:
1、这里的脚本sh文件不能放在/root目录下。
还没有评论,来说两句吧...