Linux crontab 定时任务
定时任务是比较常用的一项功能,crontab在Linux最常用的定时任务,非常稳定可靠。一般情况crontab默认安装有,可以先查看crontab有状态:
service crond status #查看crontab状态,一般是Active: active (running)
如果crontab没有运行可以执行下面相关代码进行设置:
/sbin/service crond start #启动
/sbin/service crond stop #停止
/sbin/service crond restart #重启服务
/sbin/service crond reload #重新加载
如果crontab处于运行状态,编辑crontab即可:
crontab -e #编辑crontab
每一行代表一个任务,一共六个字段,前五段是时间设定段,第六段是要执行的命令。示例:* * * * * command,分别代表:分,时,日,月,周 命令
- 分的取值: 从0到59之间的任何整数。
- 时的取值:从0到23之间的任何整数。
- 日的取值:从1到31之间的任何整数。
- 月的取值:1到12之间的任何整数。
- 周的取值:从0到7之间的任何整数。
各段中还可以使用特殊字符进行设置:
-
星号(*):代表全选,选择所有值。
-
逗号(,):代表特定范围。
-
中杠(-):代表连续范围。
-
正斜线(/):代表间隔频率。
看看几个示例(N取值正整数):
*/n * * * * command #每隔N分钟运行一次,例如每隔一分钟运行一次:*/1 * * * * docker run nginx
2 * * * * command #每小时的第2分钟运行一次
0 n * * * command #每天N时运行一次,例如每天2点运行一次:0 2 * * * docker run nginx
0 1,2 * * * command #每天凌晨1点,2点各运行一次
15 1-5 * * * command #每天凌晨1点15分,2点15分,3点15分,4点15分,五点15分,各运行一次
0 1 1 * * command #每月1号凌晨1点执行一次
0 1 * * 1-5 command #周一至周五凌晨1点执行一次
编辑完之后保存退出即可,可以通过查看命令查询当时行执行的任务:
crontab -l
查看日志:
tail -f /var/log/cron