Cron是Linux最实用的工具之一,也是开发人员喜爱的工具,因为它允许您在特定时间、日期和间隔运行自动化命令,使用通用和特定于任务的脚本。根据这个描述,您可以想象系统管理员如何使用它来自动化备份任务、目录清理、通知等。
Cron作业在后台运行,不断检查/etc/crontab
文件,以及/etc/cron.*/
和/var/spool/cron/
目录。不应直接编辑cron文件,并且每个用户都有一个唯一的crontab。
那么,您应该如何创建和编辑cron作业呢?使用crontab命令。crontab是您用来创建、编辑、安装、卸载和列出cron作业的方法。
创建和编辑cron作业的命令相同且简单。更酷的是,创建新文件或编辑现有文件后,您无需重新启动cron。
$ crontab -e
Cron 语法
与任何语言一样,了解其语法后,使用 cron 就会变得更加容易,你应该了解两种格式:
A B C D E USERNAME /path/to/command arg1 arg2 OR A B C D E USERNAME /root/backup.sh
以上 cron 语法解释:
- A: Minutes range: 0 – 59
- B: Hours range: 0 – 23
- C: Days range: 0 – 31
- D: Months range: 0 – 12
- E: Days of the week range: 0 – 7. Starting from Monday, 0 or 7 represents Sunday
- 用户名:将此替换为您的用户名
- /path/to/command – 您要安排计划的脚本或命令的名称
这还不是全部。Cron 使用 3 个操作符号,允许您在一个字段中指定多个值:
- 星号
(*)
: 指定一个字段的所有可能值 - 逗号
(,)
: 指定一个值列表 - 短横线
(-)
: 指定一个值范围 - 分隔符
(/)
: 指定一个步长值
既然你知道了 Cron 的语法和操作符,让我们看一些 cron 示例。
Cron 作业示例
运行 cron 命令的第一步是使用以下命令安装您的 crontab:
# crontab -e
每天在 凌晨 3 点 运行 /root/backup.sh
:
0 3 * * * /root/backup.sh
每月第二天的 下午 4:30 运行 script.sh
:
30 16 2 * * /path/to/script.sh
每周在 晚上 10 点 运行 /scripts/phpscript.php
:
0 22 * * 1-5 /scripts/phpscript.php
每天在 午夜后 23 分钟、上午 2 点和 4 点运行 perlscript.pl
:
23 0-23/2 * * * /path/to/perlscript.pl
每个星期日在 04:05 运行 Linux 命令:
5 4 * * sun /path/to/linuxcommand
Cron 选项
列出 cron 作业。
# crontab -l OR # crontab -u username -l
删除所有crontab任务。
# crontab -r
删除特定用户的Cron任务。
# crontab -r -u username
crontab中的字符串
字符串是开发者喜欢的东西之一,因为它们可以通过消除重复的写作来节省时间。Cron有特定的字符串可以帮助您更快地创建命令:
@hourly
:每小时运行一次,即“0 * * * *“@midnight
:每天运行一次,即“0 0 * * *“@daily
:与midnight相同@weekly
:每周运行一次,即“0 0 * * 0“@monthly
:每月运行一次,即“0 0 1 * *“@annually
:每年运行一次,即“0 0 1 1 *“@yearly
:与@annually相同@reboot
:每次启动时运行一次
例如,这是如何每天备份系统的:
@daily /path/to/backup/script.sh
在这一点上,您已经有了创建和管理系统任务使用的Cron所需的一切。您现在可以开始设置和维护几个环境,使用预定的命令。
您使用Cron有多深入?您能为这篇文章做出哪些贡献?讨论框在下面。
当你足够了解Crontab的工作原理后,你可以使用这些巧妙的Crontab生成器工具免费生成Crontab行。
此外,你可以阅读Ubuntu关于如何使用Cron的文章这里。里面有一些你可能会发现有用的资源。
Source:
https://www.tecmint.com/create-and-manage-cron-jobs-on-linux/