Crond是Linux用来定期执行命令或指定程序任务的一种服务或软件。Crond服务会定期(默认每分钟检查一次)检查系统中是否有要执行的任务工作。如果有,便会根据其预先设定的定时任务规则自动执行该定时任务工作。这个Crond定时任务服务就相当于我们早上使用的闹钟一样。
crond服务是运行的程序,而crontab是用户用来设置定时规则的命令。
crontab是一个很方便的在unix/linux系统上定时(循环)执行某个任务的程序,使用cron服务,用 service crond status 查看 cron服务状态,如果没有启动则 service crond start启动它,cron服务是一个定时执行的服务,可以通过crontab 命令添加或者编辑需要定时执行的任务:
crontab -u //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数
crontab -l //列出某个用户cron服务的详细内容
crontab -r //删除没个用户的cron服务
crontab -e //编辑某个用户的cron服务
crontab -h //查看帮助
usage:crontab [-u user] file
crontab [-u user] [ -e | -l | -r ]
(default operation is replace,per 1003.2)
-e (edit user's crontab)
-l (list user's crontab)
-r (delete user's crontab)
-i (prompt before deleting user's crontsb)
-s (selinux crontab)
基本格式:
f1 f2 f3 f4 f5 program
f1: minute(0 - 59) //分钟,0-59之间的整数
f2: hour(0-23) //小时
f3: day(1-31) //日期,如果指定了月份,日期必须正确
f4: month(1-12) //月份
f5: day of week(1-7) //一周中的日期,也可以用英文的缩写如sun, mon
program: command //表示要执行的命令
测试用例:
0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每星期六的11 : 00 pm重启apache。
* */1 * * * /usr/local/etc/rc.d/lighttpd restart
每一小时重启apache
* 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart
晚上11点到早上7点之间,每隔一小时重启apache
0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart
每月的4号与每周一到周三的11点重启apache
0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart
一月一号的4点重启apache
0 7 * * * /bin/ls
每天早上7点执行一次 /bin/ls
0 6-12/3 * 12 * /usr/bin/backup
在 12 月内, 每天的早上 6 点到 12 点中,每隔3个小时执行一次 /usr/bin/backup