crontab 命令
crontab -l
:列出当前的定时任务
crontab -e
:编辑当前的定时任务,默认是vi编辑器
格式
f1 f2 f3 f4 f5 program
- 其中 f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期中的第几天。program 表示要执行的程序。
- 当 f1 为 * 时表示每分钟都要执行 program,f2 为 * 时表示每小时都要执行程序,以此类推
- 当 f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,f2 为 a-b 时表示从第 a 到第 b 小时都要执行,以此类推
- 当 f1 为 */n 时表示每 n 分钟个时间间隔执行一次,f2 为 */n 表示每 n 小时个时间间隔执行一次,以此类推
- 当 f1 为 a, b, c,… 时表示第 a, b, c,… 分钟要执行,f2 为 a, b, c,… 时表示第 a, b, c…个小时要执行,以此类推
* * * * *
- - - - -
| | | | |
| | | | +----- 星期中星期几 (0 - 7) (星期天 为0)
| | | +---------- 月份 (1 - 12)
| | +--------------- 一个月中的第几天 (1 - 31)
| +-------------------- 小时 (0 - 23)
+------------------------- 分钟 (0 - 59)
实例
0 * * * * /bin/ls # 每月每天每小时的第 0 分钟执行一次 /bin/ls
0 */2 * * * /sbin/service httpd restart # 每两个小时重启一次apache
/etc/crontab
格式
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
日期格式和上面一样,只不过多了一个执行用户
实例
0 * * * * root /bin/ls # 每月每天每小时的第 0 分钟执行一次 /bin/ls
0 */2 * * * root /sbin/service httpd restart # 每两个小时重启一次apache
几种便捷写法
@hourly 代表 0 * * * * ,每个小时运行一次
@daily 代表 0 0 * * * ,每天凌晨运行一次
@weekly 代表 0 0 * * 0 ,每周星期天凌晨运行一次
@monthly 代表 0 0 1 * * ,每个月第一天凌晨运行一次
@yearly 代表 0 0 1 1 * ,每年的头一分钟运行一次
@reboot 重启后执行一次
@reboot root /sbin/service httpd start # 开机启动apache
/etc/cron.d
/etc/cron.d/
/etc/cron.hourly/ # 每小时执行一次下面的程序
/etc/cron.daily/ # 每天执行一次下面的程序
/etc/cron.monthly/ # 每月执行一次下面的程序
/etc/cron.weekly/ # 每周执行一次下面的程序
/etc/cron.d/
下面的文件和
/etc/crontab
文件格式一样。
/etc/cron.d/0hourly
文件控制定时执行
/etc/cron.hourly/
下面的程序
cat /etc/cron.d/0hourly
# Run the hourly jobs
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
01 * * * * root run-parts /etc/cron.hourly
/etc/anacrontab
文件控制定时执行
/etc/cron.daily/
,
/etc/cron.monthly/
,
/etc/cron.weekly/
下面的命令
cat /etc/anacrontab
# /etc/anacrontab: configuration file for anacron
# See anacron(8) and anacrontab(5) for details.
SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# the maximal random delay added to the base delay of the jobs
RANDOM_DELAY=45
# the jobs will be started during the following hours only
START_HOURS_RANGE=3-22
#period in days delay in minutes job-identifier command
1 5 cron.daily nice run-parts /etc/cron.daily
7 25 cron.weekly nice run-parts /etc/cron.weekly
@monthly 45 cron.monthly nice run-parts /etc/cron.monthly
版权声明:本文为qq_21120027原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。