Linux定时任务Crontab以及nohup启动
总结nohup挂掉的两个理由:
1.程序自己报错停掉
2.kill -9 强制杀掉进程
定时任务检查进程号,如果不存在直接启动脚本:
1.安装crontab
yum install crontabs
2.启动服务
/sbin/service crond start //启动服务
3.加入开机自动启动
chkconfig -level 35 crond on
4.编写test.sh脚本
#!/bin/bash
#判断脚本是否启动
ps -ef|grep test.py|grep -v "grep"
#如果没有
if[$? -ne 0]
then
echo "start process......"
# 执行启动脚本命令,nohup输出是追加到日志文件,这样不会覆盖掉之前的日志文件
nohup python /home/hlz/Desktop/test.py >>/home/hlz/Desktop/test.log 2>&1&
else
echo "running......"
fi
5.给脚本赋予执行权限(使脚本具有执行权限)
chmod +x ./test.sh
6.编辑当前用户的cron配置
crontab -e
* */1 * * * /home/hlz/Desktop/test.sh
7.crontab文件格式学习:
minute hour day month week command
分 时 天 月 周 命令
minute: 表示分钟,可以是从0到59之间的任何整数。
hour:表示小时,可以是从0到23之间的任何整数。
day:表示日期,可以是从1到31之间的任何整数。
month:表示月份,可以是从1到12之间的任何整数。
week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。
command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。
例如:
* * * * * /home/test.sh #每一分钟执行一次test.sh脚本
10,15 * * * * /home/test.sh #每小时的10,15分钟各执行一次test.sh脚本
15 8 * * * /home/test.sh #每天早上8点15执行一次
15 8 1 jan * /home/test.sh #1月1号早上8点15执行一次
0 6 * * 6 /home/test.sh #每个星期六的早上6点执行一次
* 8 * * * /home/test.sh #每个早上8点执行一次
0 */2 * * * /home/test.sh #每两小时执行一次