Merge pull request #22763 from wxy/20210726-How-to-use-cron-on-Linux

PUB:published/20210726 How to use cron on Linux.md
This commit is contained in:
Xingyu.Wang 2021-08-03 13:31:58 +08:00 committed by GitHub
commit a48d1588e5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -4,56 +4,52 @@
[#]: collector: (lujun9972) [#]: collector: (lujun9972)
[#]: translator: (perfiffer) [#]: translator: (perfiffer)
[#]: reviewer: (turbokernel) [#]: reviewer: (turbokernel)
[#]: publisher: ( ) [#]: publisher: (wxy)
[#]: url: ( ) [#]: url: (https://linux.cn/article-13644-1.html)
如何在 Linux 上使用 cron 定时器 如何在 Linux 上使用 cron 定时器
====== ======
cron 定时器是一个可以按照计划自动运行命令的工具。
![Cron 表达式][1]
cron 定时器是一个可以按照计划自动运行命令的工具。定时器作业称为 cronjob创建于 crontab 文件中。这是用户自动操作电脑的最简单也是最古老的方法。 > cron 定时器是一个可以按照计划自动运行命令的工具。
![](https://img.linux.net.cn/data/attachment/album/202108/03/132733qhmt6mavtbh66m5j.jpg)
cron 定时器是一个可以按照计划自动运行命令的工具。定时器作业称为 cronjob创建于 `crontab` 文件中。这是用户自动操作电脑的最简单也是最古老的方法。
### 创建一个 cronjob ### 创建一个 cronjob
要创建一个 cronjob你可以使用 crontab 命令,并添加 `-e` 选项: 要创建一个 cronjob你可以使用 `crontab` 命令,并添加 `-e` 选项:
``` ```
`$ crontab -e` $ crontab -e
``` ```
这将使用默认的文本编辑器打开 crontab。如需指定文本编辑器请使用 `EDITOR` [环境变量][1] 这将使用默认的文本编辑器打开 `crontab`。如需指定文本编辑器,请使用 `EDITOR` [环境变量][1]
``` ```
`$ EDITOR=nano crontab -e` $ EDITOR=nano crontab -e
``` ```
### Cron 语法 ### Cron 语法
如需调度一个 cronjob你需要提供给计算机你想要执行的命令然后提供一个 cron 表达式。cron 表达式在命令调度时运行: 如需调度一个 cronjob你需要提供给计算机你想要执行的命令然后提供一个 cron 表达式。cron 表达式在命令调度时运行:
* minute (0 到 59) * 分钟0 到 59
* 小时0 到 23, 0 代表午夜执行)
* hour (0 到 23, 0 代表午夜执行) * 日期1 到 31
* 月份1 到 12
* day of month (1 到 31) * 星期0 到 6, 星期天是 0
* month (1 到 12)
* day of week (0 到 6, 星期天是 0)
星号 `*` 代表的是“每一个”。例如,下面的表达式在每月每日每小时的 0 分钟运行备份脚本: 星号 `*` 代表的是“每一个”。例如,下面的表达式在每月每日每小时的 0 分钟运行备份脚本:
``` ```
`/opt/backup.sh 0 * * * *` /opt/backup.sh 0 * * * *
``` ```
下面的表达式在周日的凌晨 3:30 运行备份脚本: 下面的表达式在周日的凌晨 3:30 运行备份脚本:
``` ```
`/opt/backup.sh 30 3 * * 0` /opt/backup.sh 30 3 * * 0
``` ```
### 简写语法 ### 简写语法
@ -61,34 +57,29 @@ cron 定时器是一个可以按照计划自动运行命令的工具。定时器
现代的 cron 支持简化的宏,而不是 cron 表达式: 现代的 cron 支持简化的宏,而不是 cron 表达式:
* `@hourly` 在每天的每小时的 0 分运行 * `@hourly` 在每天的每小时的 0 分运行
* `@daily` 在每天的 0 时 0 分运行 * `@daily` 在每天的 0 时 0 分运行
* `@weekly` 在周日的 0 时 0 分运行 * `@weekly` 在周日的 0 时 0 分运行
* `@monthly` 在每月的第一天的 0 时 0 分运行 * `@monthly` 在每月的第一天的 0 时 0 分运行
例如,下面的 `crontab` 命令在每天的 0 时运行备份脚本:
例如,下面的 crontab 命令在每天的 0 时运行备份脚本:
``` ```
`/opt/backup.sh @daily` /opt/backup.sh @daily
``` ```
### 如何停止一个 cronjob ### 如何停止一个 cronjob
一旦你开始了一个 cronjob它就会永远按照计划运行。想要在启动后停止 cronjob你必须编辑 crontab删除触发该作业的命令行然后保存文件。 一旦你开始了一个 cronjob它就会永远按照计划运行。想要在启动后停止 cronjob你必须编辑 `crontab`,删除触发该作业的命令行,然后保存文件。
``` ```
`$ EDITOR=nano crontab -e` $ EDITOR=nano crontab -e
``` ```
如需停止一个正在运行的作业,可以[使用标准的Linux进程命令][3]来停止一个正在运行的进程。 如需停止一个正在运行的作业,可以 [使用标准的 Linux 进程命令][3] 来停止一个正在运行的进程。
### 它是自动的 ### 它是自动的
一旦你编写完 crontab保存了文件并且退出了编辑器。你的 cronjob 就已经被调度了,剩下的工作都交给 cron 完成。 一旦你编写完 `crontab`,保存了文件并且退出了编辑器。你的 cronjob 就已经被调度了,剩下的工作都交给 cron 完成。
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------