1 crond服务
crondtab命令有crond服务支持。crond进程会定期检查是否有要执行的任务,如果有,则自动执行。
启动命令(重启)
service crond restart
开机自启动
chkconfig crond on
2 crondtab命令
2.1 crondtab选项说明
|字段|含义|
|-|-|-|
|-u user
|用来设定某个用户的crontab服务,常见用户root|
|-e
| 编辑某个用户的crontab文件内容,如果不指定用户,则为当前用户的crontab文件内容 |
|-l
| 形式某用户的crontab文件内容,如果不指定用户,则为当前用户的crontab文件内容 |
|-r
| 从 /var/spooll/cron 删除某用户的crontab文件,如果不指定用户,则为当前用户 |
|-i
| 在删除crontab文件是,给出提示 |
2.2 编辑任务文件
crontab -e
星号含义
文件格式: 分钟 小时 天 月 星期(用*代替每隔位置)
字段 | 含义 | 范围 |
---|---|---|
第1个 * | 一小时当中的第几分钟(minute) | 0~59 |
第2个 * | 一天当中的第几小时(hour) | 0~23 |
第3个 * | 一个月当中的第几天(day) | 1~31 |
第4个 * | 一年当中的第几个月(month) | 1~12 |
第5个 * | 一周当中的星期几(week) | 0~7(0和7均代表周日) |
Crontab 表达式规则:
注:Linux中没有second,最小是miniute。
* * * * *
- - - - -
| | | | |
| | | | +----- 星期中星期几 (0 - 6) (星期天 为0)
| | | +---------- 月份 (1 - 12)
| | +--------------- 一个月中的第几天 (1 - 31)
| +-------------------- 小时 (0 - 23)
+------------------------- 分钟 (0 - 59)
特殊符号
*
星号:代表任何时间(每分钟/每天/每月…)
,
逗号:代表不连续时间
# 每天 8:05、12:05、17:05 执行
5 8,12,17***
-
中杠:代表连续时间
# 每 周一到周五,1:00 执行
0 1 ** 1-5
/
正斜线:代表每隔多久执行一次
# 每 30分钟 执行
*/30****
当文件编辑完成后,任务就会保存在 /var/spool/cron
目录中,每个用户的的定时任务用当前用户名进行区分,保存即生效。
2.3 crondtab常用案例综合
crontab -e
# 每天 8:05、12:05、17:05 执行
5 8,12,17***
# 每 周一到周五, 1:00 执行
0 1 ** 1-5
# 每 30分钟 执行
*/30****
# 每天 6点 每隔10分钟执行一次
*/10 6 ***
# 每天 11:55 执行一次
55 11 * * *
3 任务编辑
编辑任务
crontab -e
bash
# 每分钟执行一次,输出写到/tmp/test.txt文件中
*/1 * * * * /bin/echo "666" >> /tmp/test.txt
python
# 每分钟执行一次,输出写到/tmp/pytest.txt文件中
*/1 * * * * source /etc/profile; python /tmp/my.py >> /tmp/pytest.txt 2>&1