概述:
我们有时候要在linux服务器写一些shell或者python的脚本,并放置在服务器的定时任务里来满足一些需求,如何实现呢?
linux定时任务介绍:
从左到右代表的是:分,时,日,月,周,command执行脚本需要的命令
一些例子:
实例1:每1分钟执行一次脚本
* * * * * python test.py
实例2:每小时的第3和第15分钟执行脚本
3,15 * * * * python test.py
实例3:在上午8点到11点的第3和第15分钟执行脚本
3,15 8-11 * * * python test.py
实例4:每隔两天的上午8点到11点的第3和第15分钟执行
3,15 8-11 */2 * * python test.py
实例5:每周一上午8点到11点的第3和第15分钟执行
3,15 8-11 * * 1 python test.py
实例6:每晚的21:30重启smb
30 21 * * * /etc/init.d/smb restart
实例7:每月1、10、22日的4 : 45重启smb
45 4 1,10,22 * * /etc/init.d/smb restart
实例8:每周六、周日的1 : 10重启smb
10 1 * * 6,0 /etc/init.d/smb restart
实例9:每天18 : 00至23 : 00之间每隔30分钟重启smb
0,30 18-23 * * * /etc/init.d/smb restart
实例10:每星期六的晚上11 : 00 pm重启smb
0 23 * * 6 /etc/init.d/smb restart
实例11:每一小时重启smb
0 */1 * * * /etc/init.d/smb restart
实例12:晚上11点到早上7点之间,每隔一小时重启smb
0 23-7/1 * * * /etc/init.d/smb restart
不知道写的对不对可以在这个网站上去查看任务执行周期,亲测非常好用:
定时服务命令:
先介绍一些命令(centos内核服务器举例,其他类型机器会有区别):
1.查看定时服务状态,开启,关闭定时服务:
systemctl status crond
systemctl start crond
systemctl stop crond
2.查看当前机器的定时任务:crontab -l
3.添加定时任务:crontab -e 进行命令行添加
添加完毕:wq保存退出
注意:
1.command命令要写绝对路径,如何查看命令的绝对路径
例如:which python
2.多个命令拼接时用 && 符号连接即可
例如:cd /data/test && python test.py
3.python脚本记得在行首加入: # -*- coding: UTF-8 -*- 要不会报错
查看定时任务日志(测试需要):
查看日志来判断定时任务是否执行成功或者执行失败时排查错误需要
tail -20f /var/log/cron