** 计划任务的基本格式 :**
* * * * * command
分 时 日 月 周 命令
Minute Hour Day Month Week command
分钟 小时 天 月 星期 命令
0-59 0-23 1-31 1-12 0-6 command
** 解释:**
第 1 列表示 分钟 1~59 每分钟用 * 或者 */1 表示
第 2 列表示 小时 1~23(0 表示 0 点)
第 3 列表示 日期 1~31
第 4 列表示 月份 1~12
第 5 列标识号 星期 0~6(0 表示星期天)
第 6 列要运行的命令
每个字段代表的含义如下:
Minute 每个小时的第几分钟执行该任务
Hour 每天的第几个小时执行该任务
Day 每月的第几天执行该任务
Month 每年的第几个月执行该任务
DayOfWeek 每周的第几天执行该任务, 0 表示周日
Command 指定要执行的程序 , 脚本或命令
在这些字段里, 除了 "Command" 是必须指定的字段以外, 其它字段皆为可选. 对于不指定的字段, 要用 "*" 来填补其位置.
** 几个特殊符号的含义 **
"*" 代表取值范围内的数字,
"/" 代表 "每",
"-" 代表从某个数字到某个数字,
"," 分开几个离散的数字
** 关于 cron 配置文件 / etc/crontab**
**cron 的主配置文件是 /etc/crontab, 它包括下面几行:**
代码如下:
- SHELL=/bin/bash
- PATH=/sbin:/bin:/usr/sbin:/usr/bin
- MAILTO=root
- HOME=/
- **# run-parts**
- 01 * * * * root run-parts /etc/cron.hourly
- 02 4 * * * root run-parts /etc/cron.daily
- 22 4 * * 0 root run-parts /etc/cron.weekly
- 42 4 1 * * root run-parts /etc/cron.monthly
** 前四行是用来配置 cron 任务运行环境的变量:**
SHELL 变量的值指定 shell 环境 (此处默认为 bash shell);PATH 变量定义用来执行命令的程序路径; cron 任务的输出被邮寄给 MAILTO 变量定义的用户名, 如果 MAILTO 变量被定义为空白字符串 (MAILTO=""), 电子邮件就不会被寄出; HOME 变量可以用来设置在执行命令或脚本时使用的主目录.
如在 /etc/crontab 文件中 run-parts 部分所示, 它使用 run-parts 脚本来执行存在于 /etc/cron.hourly,/etc/cron.daily,/etc/cron.weekly 和 /etc/cron.monthly 目录中的脚本, 这些脚本被相应地按照预设时间在每小时, 每日, 每周, 或每月执行. 这些目录中的文件应该是 shell 脚本, 并且具有可执行权限 (chmod +x filename).
如果某 cron 任务需要根据调度来执行, 而不是每小时, 每日, 每周, 或每月地执行, 它可以被添加到 / etc/cron.d 目录中. 该目录中的所有文件使用和 /etc/crontab 中一样的语法.
每次编辑完某个用户的 cron 设置后, cron 自动在 / var/spool/cron 下生成一个与此用户同名的文件, 此用户的 cron 信息都记录在这个文件中, 这个文件是不可以直接编辑的, 只可以用 crontab -e 来编辑. cron 启动后每过一份钟读一次这个文件, 检查是否要执行里面的命令. 因此此文件修改后不需要重新启动 cron 服务
如果计划任务 放在 / etc/crontab 里面
而不是单单 crontab -e 这样编辑 crontab -l 查看
但是 etc 下的 crontab 配置是要指定用户去执行的, 不然人家不知道你用什么用户去执行这个定时任务, 比如我都是用 root 用户的权限, 那么 vim /etc/crontab 进去以后书写格式如下:
*/5 * * * * root /data/shell/rsync227.sh>>/dev/null 2>&1 &
**crontab 文件的一些例子:**
每晚的 21:30 重启 apache
30 21 * * */usr/local/etc/rc.d/lighttpd restart
每月 1,10,22 日的 4 : 45 重启 apache
45 4 1,10,22 * */usr/local/etc/rc.d/lighttpd restart
每周六, 周日的 1 : 10 重启 apache
10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart
每天 18 : 00 至 23 : 00 之间每隔 30 分钟重启 apache
0,30 18-23 * * */usr/local/etc/rc.d/lighttpd restart
来源: http://www.bubuko.com/infodetail-2686856.html