linux -计划任务

在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文件修改计划任务,其文件格式如下:

1

使用举例:

47 * * * * root /usr/sbin/ntpdate -b -s time.windows.com > /dev/null 2>&1

每47分钟同步一次时间

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注