整理Crontab 定时计划
一. 什么是crontab?
crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。该词来源于希腊语chronos,原意是时间。 (来自维基百科)
二. crontab常见用法
1.常用命令
cron服务提供crontab命令来设定cron服务的,以下是这个命令的一些参数与说明:
crontab -u //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数
crontab -l //列出某个用户cron服务的详细内容
crontab -r //删除没个用户的cron服务
crontab -e //编辑某个用户的cron服务
比如说root查看自己的cron设置:crontab -u root -l
再例如,root想删除fred的cron设置:crontab -u fred -r
在编辑cron服务时,编辑的内容有一些格式和约定,输入:crontab -u root -e
进入vi编辑模式,编辑的内容一定要符合下面的格式:*/1 * * * * ls >> /tmp/ls.txt
任务调度的crond常驻命令
crond 是linux用来定期执行程序的命令。当安装完成操作系统之后,默认便会启动此
任务调度命令。crond命令每分锺会定期检查是否有要执行的工作,如果有要执行的工
作便会自动执行该工作。
2.常见用法
eg: * 1 * * * /sbin/reboot
头上例子代表的意思是在每天的凌晨一点执行重启命令
一个crontab 大约包含六部分分别是 分 小时 日 月 星期 命令
另外一些特殊字符代表的意思分别是:
“*” 代表取值范围内的数字,
“/” 代表”每”,
“-” 代表从某个数字到某个数字,
“,” 分开几个离散的数字
对于不指定的字段,要用“*”来填补其位置。举例如下:
1 * * * * command 指定每小时的第1分钟执行一次命令
1 5 * * * command 指定每天的 5:01 执行命令
1 7 8 * * command 指定每月8号的7:01分执行命令
1 5 8 6 * command 指定每年的6月8日5:1执行命令
1 6 * * 0 command 指定每星期日的6:01执行ls命令[注:0表示星期天,1表示星期1,以此类推,也可以用英文来表示,sun表示星期天,mon表示星期一等。]
1 7 * * * root run-parts /etc/cron.daily 每天7:01以root 身份执行/etc/cron.daily目录中的所有可执行文件[ 注:run-parts参数表示,执行后面目录中的所有可执行文件。 ]
三.查看运行日志
1. linux
看 /var/log/cron这个文件就可以,可以用tail -f /var/log/cron观察(不能用cat查看)
2. mail任务
在 /var/spool/mail/root 文件中,有crontab执行日志的记录,用tail -f /var/spool/mail/root 即可查看最近的crontab执行情况。
3.为crontab添加日志
0 6 * * * $HOME/for_crontab/createTomorrowTables >> $HOME/for_crontab/mylog.log 2>&1
把错误输出和标准输出都输出到mylog.log中。
注意:不要写成
0 6 * * * $HOME/for_crontab/createTomorrowTables 2>&1 >> $HOME/for_crontab/mylog.log
否则就输出到标准输出了