前言
在服务器上有些代码不需要一直跑,间接性的或者定时的任务就需要使用linux自带定时工具 crontab
1.crontab 怎么进入
crontab -e
进入服务器后任何位置输入上面命令都可以进入,然后就可以当文件进行编辑
2.服务启动与关闭
运行 crontab -e,要么成功,要么就各种问题提示失败,原因就需要先看一下crontab的服务有没有启动
service crond start //启动服务
service crond stop //关闭服务
service crond restart //重启服务
service crond reload //重新载入配置
service crond status //查看服务状态
3.crontab -e 语法介绍
先给一个命令样例
1 0 * * * cd /home/; /root/anaconda2/bin/python update.py
解释一下:每天凌晨0点1分,切换到 home 目录下,然后调用 python 命令启动 update.py 程序
cd 命令之前是控制启动时间的,这个很重要,cd 以及之后的都是程序启动的命令,可以不管
控制时间说明
* * * * *
总共五个时间位置,每个位置中间空格分隔,
第一个星号到第五个星号分别表示:
分钟(0-59),小时(0-23),每月的哪天(1-31),月(1-12),周几(0-6)
每个位置写法说明:
星号(*):代表所有可能的值,如month字段为星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。
逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”
中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”
正斜线(/):可以用正斜线指定时间的间隔频率,例如在小时的位置“8-20/2”表示8点到20点之间每两小时执行一次
4.举几个常用栗子说明:
* */1 * * * /etc/init.d/smb restart 每一小时重启smb
* 23-7/1 * * * /etc/init.d/smb restart 晚上11点到早上7点之间,每隔一小时重启smb
0 23 * * 6 /etc/init.d/smb restart 每星期六的晚上11 : 00 重启smb
5.注意
crontab 命令编辑好以后记得保存,保存以后立即生效 如果是调用python命令,记得加上python的绝对路径,默认crontab 会调用系统自带的python