有勇气的牛排博客

linux crontab定时任务

有勇气的牛排 626 linux 2022-11-18 15:57:17

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 * * * * python /tmp/my.py >> /tmp/pytest.txt

留言

专栏
文章
加入群聊