在linux下设置计划任务
1. 命令使用
-u 指定一个用户
-l 列出某个用户的任务计划
-r 删除某个用户的任务
-e 编辑某个用户的任务
比如使用:
#crontab –u www –e
表示设置www组下的计划任务,如果使用crontab –e 则表示设置root下的
2. 语法
分 小时 日 月 星期 命令
0-59 0-23 1-31 1-12 0-6 command
从左到右依次为:
1)每个小时的第几分钟执行该任务
2)每天的第几个小时执行该任务
3)每月的第几天执行该任务
4)每年的第几个月执行该任务
5)每周的第几天执行该任务
6)指定要执行的程序
(注:星期中0表示星期日,每一行表示一个计划任务)
特殊符号:
”*” 代表取值范围内的所有数字
”/” 代表”每”
”-” 代表从某个数字到某个数字
”,” 分开几个离散的数字
3. 举例说明:
若我想添加www组下计划任务
#crontab –u www –e
例1:
*/5 1-6 * * * /usr/local/php/bin/php /home/wwwroot/datacopy/catchdata.php
这个表示每天的1-6点,每隔5分钟执行catchdata.php脚本。
这里要注意的是,这个是通过计划任务执行的,在catchdata.php中引用某文件的路径要写成绝对路径,因为在计划任务中是不识别环境变量的,而且catchdata所在用户和用户组都要为www的,其要有执行权限。
例2:
1 5 */3 * * /data/sh/regularly_clean_up_data.sh > /dev/null 2>&1
每隔3天的5点1分执行regularly_clean_up_data.sh这个sh脚本,将执行后的输出结果丢弃,当然你也可是将输出的结果放在一个文件中,比如使用:
> /data/log/regularly_clean_up_data.log
修改完成后需重启计划任务
#service crond restart
4. 关于计划任务
cron服务每分钟不仅要读一次/var/spool/cron内的所有文件,还需要读一次/etc/crontab,因此我们配置这两个文件也能运用cron。
1)使用crontab 命令实质是修改/var/spool/cron下对应用户的cron文件,
可以使用vi直接编辑此cron文件
2)另外也可以修改/etc/crontab文件修改计划任务,其文件格式如下:
使用举例:
47 * * * * root /usr/sbin/ntpdate -b -s time.windows.com > /dev/null 2>&1
每47分钟同步一次时间