TranslateProject/published/201805/20180504 A Beginners Guide To Cron Jobs.md
2018-06-03 22:19:23 +08:00

231 lines
5.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Cron 任务入门指南
======
![](https://www.ostechnix.com/wp-content/uploads/2018/05/cron-jobs1-720x340.jpg)
**Cron** 是您可以在任何类 Unix 操作系统中找到的最有用的实用程序之一。它用于安排命令在特定时间执行。这些预定的命令或任务被称为 “Cron 任务”。Cron 通常用于运行计划备份、监视磁盘空间、定期删除不再需要的文件(例如日志文件)、运行系统维护任务等等。在本简要指南中,我们将看到 Linux 中 Cron 任务的基本用法。
### Cron 任务入门指南
cron 任务的典型格式是:
```
分钟(0-59) 小时(0-24) 日(1-31) 月(1-12) 星期(0-6) 要执行的命令
```
只需记住 cron 任务的格式或打印下面的插图并将其放在你桌面上即可。
![][2]
在上图中,星号表示特定的时间块。
要显示当前登录用户的 crontab 文件的内容:
```
$ crontab -l
```
要编辑当前用户的 cron 任务,请执行以下操作:
```
$ crontab -e
```
如果这是第一次编辑此文件,会询问你使用哪个编辑器来编辑此文件。
```
no crontab for sk - using an empty one
Select an editor. To change later, run 'select-editor'.
1. /bin/nano <---- easiest
2. /usr/bin/vim.basic
3. /usr/bin/vim.tiny
4. /bin/ed
Choose 1-4 [1]:
```
选择适合你的编辑器。这里是一个示例 crontab 文件的样子。
![][3]
在这个文件中,你需要添加你的 cron 任务。
要编辑其他用户的 crontab例如 ostechnix请执行
```
$ crontab -u ostechnix -e
```
让我们看看一些例子。
**每分钟** 执行一次 cron 任务,需使用如下格式。
```
* * * * * <command-to-execute>
```
要每 5 分钟运行一次 cron 任务,请在 crontab 文件中添加以下内容。
```
*/5 * * * * <command-to-execute>
```
要在每 1/4 个小时(每 15 分钟)运行一次 cron 任务,请添加以下内容:
```
*/15 * * * * <command-to-execute>
```
要每小时的第 30 分钟运行一次 cron 任务,请运行:
```
30 * * * * <command-to-execute>
```
您还可以使用逗号定义多个时间间隔。例如,以下 cron 任务每小时运行三次,分别在第 0、 5 和 10 分钟运行:
```
0,5,10 * * * * <command-to-execute>
```
每半小时运行一次 cron 任务:
```
*/30 * * * * <command-to-execute>
```
每小时运行一次:
```
0 * * * * <command-to-execute>
```
每 2 小时运行一次:
```
0 */2 * * * <command-to-execute>
```
每天运行一项(在 00:00 运行):
```
0 0 * * * <command-to-execute>
```
每天凌晨 3 点运行:
```
0 3 * * * <command-to-execute>
```
每周日运行:
```
0 0 * * SUN <command-to-execute>
```
或使用,
```
0 0 * * 0 <command-to-execute>
```
它将在每周日的午夜 00:00 运行。
星期一至星期五每天运行一次,亦即每个工作日运行一次:
```
0 0 * * 1-5 <command-to-execute>
```
这项工作将于 00:00 开始。
每个月运行一次:
```
0 0 1 * * <command-to-execute>
```
于每月第 1 天的 16:15 运行:
```
15 16 1 * * <command-to-execute>
```
每季度运行一次,亦即每隔 3 个月的第 1 天运行:
```
0 0 1 */3 * <command-to-execute>
```
在特定月份的特定时间运行:
```
5 0 * 4 * <command-to-execute>
```
每个四月的 00:05 运行。
每 6 个月运行:
```
0 0 1 */6 * <command-to-execute>
```
这个定时任务将在每六个月的第一天的 00:00 运行。
每年运行:
```
0 0 1 1 * <command-to-execute>
```
这项 cron 任务将于 1 月份的第一天的 00:00 运行。
我们也可以使用以下字符串来定义任务。
`@reboot` 在每次启动时运行一次。 `@yearly` 每年运行一次。 `@annually`(和 `@yearly` 一样)。 `@monthly` 每月运行一次。 `@weekly` 每周运行一次。 `@daily` 每天运行一次。 `@midnight` (和 `@daily` 一样)。 `@hourly` 每小时运行一次。
例如,要在每次重新启动服务器时运行任务,请将此行添加到您的 crontab 文件中。
```
@reboot <command-to-execute>
```
要删除当前用户的所有 cron 任务:
```
$ crontab -r
```
还有一个名为 [crontab.guru] [4] 的专业网站,用于学习 cron 任务示例。这个网站提供了很多 cron 任务的例子。
有关更多详细信息,请查看手册页。
```
$ man crontab
```
那么,就是这样。到此为止,您应该对 cron 任务以及如何在世使用它们有了一个基本的了解。后续还会介绍更多的优秀工具。敬请关注!!
干杯!
--------------------------------------------------------------------------------
via: https://www.ostechnix.com/a-beginners-guide-to-cron-jobs/
作者:[SK][a]
选题:[lujun9972](https://github.com/lujun9972)
译者:[KevinSJ](https://github.com/KevinSJ)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:https://www.ostechnix.com/author/sk/
[1]:data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7
[2]:http://www.ostechnix.com/wp-content/uploads/2018/05/cron-job-format-1.png
[3]:http://www.ostechnix.com/wp-content/uploads/2018/05/cron-jobs-1.png
[4]:https://crontab.guru/