计划任务
约 682 个字 60 行代码 预计阅读时间 3 分钟
select-editor
- 选择默认编辑器
一些需要进行编辑的命令,首次执行前,会问选择什么编辑器:
仅执行一次的计划任务
at
-仅执行一次的计划任务
适用于临时的、一次性的计划任务。
需要 atd
服务开启。
要执行的任务脚本会被放在 /var/spool/cron/atjobs/
(Ubuntu)或 /var/spool/at/
(CentOS)中。
各用户使用该命令的权限:
- 如有
/etc/at.allow
,则只有该文件内的用户可以执行 - 如无
/etc/at.allow
,但有/etc/at.deny
,则只有该文件内的用户不可执行 - 如两个文件都不存在,则只有 root 可以执行
默认会有一个空的 /etc/at.deny
文件。
使用方法
例
batch
- 闲时执行任务
和 at
很像,但不定义时间。
在 CPU 1 分钟负载小于给定值时,才会执行(Ubuntu 默认为 1.5
,CentOS 默认为 0.8
)。
定义后能够通过 at
、atd
、atrm
管理。
cron - 定期执行的计划任务
对应服务 crond
。
用户权限控制和 at
很像,把 at
换成 cron
即可;但如果两个文件都不存在,则所有用户都可以使用。
CentOS 中,执行记录会记录到 /var/log/cron
;Ubuntu 默认未开启。
crontab
- 配置 cron
选项:
-u 用户名
:帮其他用户操作(需 root 权限)-e
:编辑-l
:查看-r
:删除所有
cron 配置文件
- 每个用户的(通过
crontab -e
编辑):/var/spool/cron/crontabs/用户名
(Ubuntu)/var/spool/cron/用户名
(CentOS)
- 系统的:
/etc/crontab
/etc/cron.d/*
对于每个用户的 cron 配置文件格式
填数字(分、时、日、月、周几)时,可用特殊符号:
*
:任意a,b
:a
和b
a-b
:从a
到b
a/b
:a
区间(可以是c-d
,也可以是*
)中,每隔b
- 如月份
1-12/2
或*/2
等价于1,3,5,7,9,11
- 如月份
Info
如果“日”和“周几”都定义有值,则其中只要一个条件满足,则条件满足。
例:
每周五 19:00 重启一次:
参考答案
需要放在 root 的 cron 配置文件中。奇数月的中旬 12:00~14:00,每 5 分钟请求给定 URL:
系统的 cron 配置文件格式
上方有定义变量的命令:
下方的格式:
其他定期执行的脚本
/etc/cron.hourly/*
、/etc/cron.daily/*
、/etc/cron.weekly/*
、/etc/cron.monthly/*
:依给定频率执行其中的脚本,脚本格式与普通脚本一样。
这些实际上由 anacron 管理,确保即使遇到停机,也会在恢复后执行命令。
Ubuntu 中被写进了 /etc/crontab
;CentOS 中配置文件 /etc/anacrontab
。
参考资料
- 鸟哥的Linux私房菜. 基础学习篇 / 鸟哥著 ; Linux 中国繁转简. -- 4版. -- 北京 : 人民邮电出版社, 2018.3; ISBN 978-7-115-47258-8
- Linux就该这么学 / 刘遄著. -- 北京 : 人民邮电出版社, 2017.11; ISBN 978-7-115-47031-7
- Linux 教程 | 菜鸟教程