重启脚本
path=/data # 启动文件的路径
name=qidong # 启动的sh文件名字
pid=$(pgrep -f $name)
if [ ! -n "$pid" ]
then
echo $(date +"%Y-%m-%d %H:%M:%S") '进程不存在,需要重启,正在重启中'
cd $path
nohup sh ./$name & # 启动命令
else
echo $(date +"%Y-%m-%d %H:%M:%S") '进程存在' $pid
fi# 检查是否启动成功
pid2=$(pgrep -f $name)
if[ ! -n "$pid2" ]
then
echo $(date +"%Y-%m-%d %H:%M:%S") '启动失败'
else
echo $(date +"%Y-%m-%d %H:%M:%S") '进程正常运行'
fi
其中-n用于判断变量是否为空
!表示取反
pgrep -f XXX匹配包含XXX的进程,并返回进程号,此处也可以用ps -ef | grep XXX | grep -v grep替代,效果是一样的
将重启脚本写进linux的定时中
输入crontab -e开始编辑linux的定时(写入方式与vim相同)
输入crontab -l查看所有的定时
输入crontab -r删除所有的定时
cron文件语法
分 小时 日 月 星期 命令
0-59 0-23 1-31 1-12 0-6 command (取值范围,0表示周日一般一行对应一个任务)Minute Hour Day Month Dayofweek command
分钟 小时 天 月 天每星期 命令记住几个特殊符号的含义:
“*”代表取值范围内的数字,
“/”代表”每”,
“-”代表从某个数字到某个数字,
“,”分开几个离散的数字
30 3 10,20 * * ls 每月10号及20号的3:30执行ls命令[注:“,”用来连接多个不连续的时段]
25 8-11 * * * ls 每天8-11点的第25分钟执行ls命令[注:“-”用来连接连续的时段]
*/15 * * * * ls 每15分钟执行一次ls命令 [即每个小时的第0 15 30 45 60分钟执行ls命令 ]
30 6 */10 * * ls 每个月中,每隔10天6:30执行一次ls命令[即每月的1、11、21、31日是的6:30执行一次ls 命令。 ]