最近我们使用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目录下。


还没有评论,来说两句吧...