|
|
51CTO旗下网站
|
|
移动端

如何在Linux上创建和管理计划任务?

cron是Linux最有用的工具之一,也是开发人员的宠儿,因为它让你可以使用通用脚本和针对特定任务的脚本在指定的时段、日期和间隔时间运行自动命令。你可以想象系统管理员如何用它来自动执行备份任务、目录清理和通知等。

作者:布加迪编译来源:51CTO|2019-05-29 08:00

如何在Linux上创建和管理计划任务?

【51CTO.com快译】cron是Linux最有用的工具之一,也是开发人员的宠儿,因为它让你可以使用通用脚本和针对特定任务的脚本在指定的时段、日期和间隔时间运行自动命令。你可以想象系统管理员如何用它来自动执行备份任务、目录清理和通知等。

计划任务(cron job)在后台运行,不断检查/etc/crontab文件以及/etc/cron.*/和/var/spool/cron/目录。cron文件不该直接编辑,每个用户都有独特的crontab。

那么你应该如何创建和编辑计划任务?借助crontab命令。crontab是用于创建、编辑、安装、卸载和列出计划任务的方法。

用于创建和编辑计划任务的命令一样且很简单。更棒的是,创建新文件或编辑现有文件后,无需重新启动cron。

  1. $ crontab -e 

cron语法

就像使用任何语言一样,如果你理解其语法,使用cron容易得多;你应该知道2种格式:

A B C D E USERNAME /path/to/command arg1 arg2

或者

A B C D E USERNAME /root/backup.sh

解释一下上述的cron语法:

  • A:分钟范围:0 - 59
  • B:小时范围:0 - 23
  • C:天数范围:0 - 31
  • D:月份范围:0-12
  • E:每星期天数范围:0 – 7。星期一开始,0或7表示星期日。
  • USERNAME:将这个换成你的用户名。
  • /path/to/command:你想要安排运行的脚本或命令的名称。

那不是全部。cron使用3个运算符符号,以便你在字段中指定多个值:

  • 星号(*):指定字段的所有可能值。
  • 逗号(,):指定值列表。
  • 连号(- ):指定一系列值。
  • 分隔符(/):指定步长值。

你已了解了cron的语法和运算符,不妨看几个计划任务例子。

计划任务例子

运行cron命令的***步是用以下命令安装crontab:

  1. # crontab -e 

每天凌晨3点运行/root/backup.sh:

  1. 0 3 * * * /root/backup.sh 

在每个月的第二天下午4:30运行script.sh:

  1. 30 16 2 * * /path/to/script.sh 

在每周晚上10点运行/scripts/phpscript.php:

  1. 0 22 * * 1-5 /scripts/phpscript.php 

每天凌晨0点23分、2点和4点运行perlscript.pl:

  1. 23 0-23/2 * * * /path/to/perlscript.pl 

每星期日04:05运行Linux命令:

  1. 5 4 * * sun /path/to/linuxcommand 

计划任务选项

列出计划任务。

  1. # crontab -l 

或者

  1. # crontab -u username -l 

删除所有crontab任务。

  1. #crontab -r 

删除某个特定用户的计划任务。

  1. # crontab -r -u username 

Crontab中的字符串

字符串是开发人员最喜欢的东西之一,因为它们可以消除重复编写,有助于节省时间。 cron有特定的字符串,可用于更快地创建命令:

@hourly:每小时运行一次,即“0 * * * *”

@midnight:每天运行一次,即“0 0 * * *”

@daily:与子夜一样

@weekly:每周运行一次,即“0 0 * * 0”

@monthly:每月运行一次,即“0 0 1 * *”

@annually:每年运行一次,即“0 0 1 1 *”

@yearly:与@annually一样

@reboot:每次启动时运行一次

比如说,这是每天备份系统的方法:

@daily /path/to/backup/script.sh

此时,你已学会了使用计划任务来创建和管理系统任务所需的一切。现在你可以开始使用预定的命令,设置和维护多个环境。

原文标题:How to Create and Manage Cron Jobs on Linux,作者:Martins D. Okoi

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】

【编辑推荐】

  1. 使用 VS 2019进行Linux远程开发
  2. Linux下如何查看硬件信息?
  3. Antergos Linux 已经停止维护
  4. 一篇文章搞懂Linux运行级别,恭喜你!离大佬又近了一步
  5. 越来越像Linux了!Windows系统5月更新让Python开箱即用
【责任编辑:庞桂玉 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

订阅专栏+更多

16招轻松掌握PPT技巧

16招轻松掌握PPT技巧

GET职场加薪技能
共16章 | 晒书包

289人订阅学习

20个局域网建设改造案例

20个局域网建设改造案例

网络搭建技巧
共20章 | 捷哥CCIE

645人订阅学习

WOT2019全球人工智能技术峰会

WOT2019全球人工智能技术峰会

通用技术、应用领域、企业赋能三大章节,13大技术专场,60+国内外一线人工智能精英大咖站台,分享人工智能的平台工具、算法模型、语音视觉等技术主题,助力人工智能落地。
共50章 | WOT峰会

0人订阅学习

读 书 +更多

.NET for Flash动态网站开发手札

本书深入浅出地说明了如何利用.NET、Flash及XML来辅助Flash富媒体应用程序的开发。 本书首先介绍了Flash影片应用程序与.NET应用程序结合的...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊

51CTO服务号

51CTO播客