Linux下的计划任务 crontab
cron是linux用来定期执行程序的命令。当安装完成操作系统之后,默认便会启动此任务调度命令。cron命令每分锺会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。而linux任务调度的工作主要分为以下两类:
1、系统执行的工作:系统周期性所要执行的工作,如备份系统数据、清理缓存
2、个人执行的工作:某个用户定期要做的工作,例如每隔10分钟检查邮件服务器是 否有新信,这些工作可由每个用户自行设置。
Logsky:/home/run # crontab -help
crontab: usage error: file name must be specified for replace
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) # 删除任务列表
基本格式:
Logsky:/home/run # crontab -e * * * * */home/run/test.sh > /dev/null 2>&1
* * * * * /home/run/test.sh > /dev/null 2>&1
分 时 日 月 周 命令
第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令
对于不指定的字段,要用“*”来填补其位置。
cron服务每分钟不仅要读一次/var/spool/cron内的所有文件,还需要读一次/etc/crontab,因此我们配置这个文件也能运用cron服务做一些事情。用crontab配置是针对某个用户的,而编辑/etc/crontab是针对系统的任务。此文件的文件格式是:
SHELL=/bin/sh
PATH=/usr/bin:/usr/sbin:/sbin:/bin:/usr/lib/news/bin
MAILTO=root
#
# check scripts in cron.hourly, cron.daily, cron.weekly, and cron.monthly
#
-*/15 * * * * root test -x /usr/lib/cron/run-crons && /usr/lib/cron/run-crons >/dev/null 2>&1
引荐一些例子:
1、指定每5分钟执行一次ls命令
*/5 * * * * ls
2、指定每天的 5:30 执行ls命令
30 5 * * * ls
3、指定每月8号的7:30分执行ls命令
30 7 8 * * ls
4、指定每年的6月8日5:30执行ls命令
30 5 8 6 * ls
5、指定每星期日的6:30执行ls命令
30 6 * * 0 ls
注:0表示星期天,1表示星期1,以此类推,也可以用英文来表示,sun表示星期天,mon表示星期一等。
6、每月10号及20号的3:30执行ls命令
30 3 10,20 * * ls
注:“,”用来连接多个不连续的时段
7、每天8-11点的第25分钟执行ls命令
25 8-11 * * * ls
注:“-”用来连接连续的时段
8、每15分钟执行一次ls命令
*/15 * * * * ls
即每个小时的第0 15 30 45 60分钟执行ls命令
9、每个月中,每隔10天6:30执行一次ls命令
30 6 */10 * * ls
即每月的1、11、21、31日是的6:30执行一次ls命令。
10、每天7:50以root 身份执行/etc/cron.daily目录中的所有可执行文件
50 7 * * * root run-parts /etc/cron.daily
注:run-parts参数表示,执行后面目录中的所有可执行文件。
http://www.cnblogs.com/qingteng1983/archive/2010/07/22/1782639.html
http://www.linuxso.com/command/crontab.html
http://www.cnblogs.com/jiafan/articles/1153066.html