Linux 中的 Crontab:作业调度示例
什么是 crontab?
Cron 以希腊语单词“Chronos”命名,表示时间。它是一个系统进程,将根据特定计划自动执行任务。它是一组用于运行常规调度任务的命令。Crontab 代表“cron 表”。它允许使用作业调度程序(称为 cron)来执行任务。
Crontab 也是用于编辑该计划的程序的名称。它由 crontab 文件驱动,该文件是一个配置文件,指示要针对特定计划定期运行的 shell 命令。
为什么要使用 Cronjobs?
以下是在 Linux 中使用 Cronjobs 的原因:
- 帮助操作系统按计划备份日志文件或数据库。
- 删除旧日志文件
- Archive 并清除数据库表
- 发送任何通知电子邮件,如新闻通讯、密码过期电子邮件
- 定期清理缓存数据
- Crontab 是自动化 Unix 作业的理想选择。
- 用于自动化系统维护
如何在 Linux 中使用 cron?
Linux系统 pack 有一个很有用的任务调度程序,名为 crontab。Crontab 之所以受欢迎,是因为它可以被安排以 root 身份运行自动化进程。因此,以 root 身份运行自动化进程使系统更改更加容易。您只需更改任务,然后等待任务重新启动即可。
Linux Crontab 格式
Linux的crontab有6个字段,前XNUMX个字段定义执行的时间和日期,第XNUMX个字段用于命令的执行。
Crontab 语法:
[Minute] [hour] [Day_of_the_Month] [Month_of_the_Year] [Day_of_the_Week] [command]
- 体育运动 (*): 用于匹配
- 定义范围: 允许您使用连字符来定义一个范围,如 1-10 或 30-40 或 jan-mar、mon-wed。
- 定义多个范围: 允许您使用分隔命令定义各种范围,如 apr-jun、oct-dec。
如何添加/修改 Crontab
用户可以借助以下 crontab 命令编辑他们的 crontab 作业:
$ crontab -u -e
上述命令将打开您的计算机系统的个人 crontab 配置,您可以使用默认文本编辑器进行编辑。
无需重新启动 crontab,因为当您使用以下命令时它会自动获取您的更改。
$ crontab -l
要删除 crontab 任务,请使用以下命令。
$ crontab -r
要在 crontab 中添加或更新作业,请使用下面给出的命令。
crontab -e
编辑其他用户的 crontab 的命令
crontab -u username -e
如何列出 Crontab
查看当前用户的 crontab 条目的命令
crontab -l
查看特定用户的 crontab 条目的命令:
crontab -u username -l
重要的 crontab 示例
以下是 Crontab 的一些重要示例
描述 | 命令 |
---|---|
Cron命令执行各种调度作业。 下面给出的命令每天早上 7 点和下午 5 点执行。 |
0 7,17 * * * /scripts/script.sh |
每 5 分钟执行一次 cron 的命令。 |
*/5* * * * * /scripts/script.sh |
Cron 调度程序命令可帮助你在每个 Monday 凌晨 5 点。此命令对于执行系统清理等每周任务很有帮助。 |
0 5 * * mon /scripts/script.sh |
命令以 3 分钟为间隔运行你的脚本。 |
*/3 * * * * /scripts/monitor.sh |
用于安排在特定月份执行的 cron 任务的命令。 此命令用于运行 2 月、6 月和 9 月的任务。有时我们需要安排任务执行选定的每月任务。 |
* * * feb,jun,sep * /script/script.sh |
在选定日期执行的命令。此示例将运行每个 Monday 以及星期三下午 5 点。 |
0 17 * * mon,wed /script/script.sh |
此命令允许 cron 在每月第一个星期六执行。 |
0 2 * * sat [ $(date +%d) -le 06 ] && /script/script.sh |
命令以 6 小时为间隔运行脚本,因此可以按如下所示进行配置。 |
0 */6 * * * /scripts/script.sh |
此命令计划任务在 Monday 和星期二。使用以下设置来执行此操作。 |
0 4,17 * * mon,tue /scripts/script.sh |
命令安排 cron 每 15 秒执行一次。 |
* * * * * /scripts/script.sh * * * * * sleep 15; /scripts/script.sh |
命令按年度安排任务。 @yearly timestamp 设置为“0 0 5 1 *”。这将在每年的第五分钟执行任务。您可以使用它来发送新年问候。 |
@yearly /scripts/script.sh |
命令每月执行的任务。 @monthly timestamp 类似于“0 0 1 * *”。此命令表达式允许在每月的第一分钟执行任务。 |
@monthly /scripts/script.sh |
使用单个 cron 执行多个任务的命令。 |
* * * * * /scripts/script.sh; /scripts/scrit2.sh |
用于安排每周执行任务的命令。 @weekly 时间戳类似于“0 0 4 * sun”。这用于执行每周任务,例如系统清理等。 |
@weekly /bin/script.sh |
任务将按计划每天执行。 @daily timestamp 类似“0 2 * * *”,每天第二分钟执行任务。 |
@daily /scripts/script.sh |
允许每小时执行任务。 @hourly 时间戳类似于“0 * * * *”,该命令在每小时的第一分钟执行一次任务。 |
@hourly /scripts/script.sh |
允许任务在系统重启时执行。 @reboot 表达式对于系统希望在系统启动时运行的任务很有用。这有助于自动启动后台任务。 |
@reboot /scripts/script.sh |
概要:
- Cron 的名字取自希腊语“Chronos”,表示时间。
- Cronjobs 帮助操作系统按计划备份日志文件或数据库。
- Linux 系统包有一个名为 crontab 的有用的任务调度程序,可以安排以 root 身份运行自动化进程。
- Linux的crontab有6个字段,前XNUMX个字段定义执行的时间和日期,第XNUMX个字段用于命令的执行。