Linux 技术手札

Linux 排程工作 — Crontab

Linux 要排程自动执行工作, 一般上会用 crontab 及 at, 它们的分别在于 at 只会执行一次就会结束, 而 crontab 则会一直将工作循环地执行, 直到将它终止。

要加入排程工作先输入 crontab -e 指令:

# crontab -e

然后 crontab 会开启文字编辑器 (一般是 vi 或 vim), 跟其他 shell script 一般, 以 “#” 字符开头的行为注解, 不用理会。

Crontab 的格式分为 6 个字段的资料, 它们分别代表:

1. 分钟 (0-59)
2. 小时 (0-23)
3. 日期 (1-31)
4. 月份 (1-12)
5. 星期 (0-7)
6. 执行的指令

例如有一个用作备份的 shell script 在 /root/backup-day.sh, 想在每天早上 5:00 自动执行, 则加入这行:

0 5 * * * /root/backup-day.sh

然后就像日常操作 vi 一样, 储存盘案后离开便完成排程工作。

Crontab 格式里面有几个特别符号, 包括:

– : 表示一段连续的时间, 例如想在日期字段输入 11-15, 即代表每月的 11, 12, 13, 14, 15 这几天执行.
, : 表示分隔一个以上的时间, 例如小时输入 3,5, 代表 3:00 及 5:00.
* : 代表所有时间, 例如在 “日期” 字段用 “*”, 代表每一天.
/ : 表示相隔多久执行一次, 例如我想每 5 分钟执行一次, 可以输入 “*/5 * * * * script.sh”.

如果不是新增排程, Crontab 指令其他的用法有:

crontab -e 编辑 crontab 档案,如果档案不存在则会自动建立。
crontab -l 显示 crontab 档案内容。
crontab -r 删除 crontab 档案。
crontab -v 显示上一次编辑 crontab 的时间,但不是所有系统适用。

Exit mobile version