本期《Linux 黑话解释》系列文章,您将了解Linux中的计划任务cron作业功能。您将通过学习编辑crontab文件来创建cron作业。什么是计划?cron是一个有用的命令行工具,用于按计划运行短而快速的命令。该工具是一种方便的经典系统管理工具,与其他工具结合使用时可以自动执行各种任务。例如,有些人将rsync与cron结合使用,以在特定时间自动创建每日和每周备份。也有人用cron分析服务器日志,结合邮件系统的功能,当发现日志有错误时,自动发送报警邮件。Cron就像一把“瑞士军刀”,可以在多种场景下使用。尽可能发挥你的想象力去探索它的功能。其实cron的使用非常好用,只需要几秒钟。但在开始之前,让我们讨论几个经常混淆的概念。cron、计划任务和crontab有三个容易混淆的术语:cron、计划任务和crontab。我们来看看它们的含义:术语含义cron这是安装在系统上实际执行定时任务的守护进程。定时任务“任务”是指启动并运行的程序。Cron可以按照约定的时间安排运行各种任务。此类任务通常称为“定时任务”。crontab这是一个用来定义定时任务的文件。一个crontab文件可以以表格的形式定义多个定时任务(每一行都是一个定时任务)。让我们看一个简单的例子:创建一个计划任务来打印Linux很酷!每小时到crontabl_log.txt文件。0****echo“Linux很酷!”>>~/crontab_log.txt是不是这样一个简单的定时任务的例子让你心惊肉跳,因为你需要知道如何读取一个定时任务的属性。我将在本文后面描述这些基本的理论知识。cron入门让我们看看cron如何使用另一个示例。为了创建一个crontab(或cron将执行的命令任务),你只需要运行:crontab-e这将打开一个用于编辑crontab默认视图的文件其中,所有以#开头的行都是注释,以指导你如何使用cron,如果你觉得没用,你可以删除它们。我们将创建以下任务作为我们的第一个crontab:*****touch~/crontab_test让我快速了解一下crontab_test将做什么:crontabs都是以“分钟小时日月周命令”的形式呈现:分钟:指示将执行任务的分钟。因此,值0将在每小时的开始运行,而5将在每小时的第五分钟运行。小时:表示任务将在一天中的几点开始执行,取值范围为0-23。没有24的原因是23点结束是半夜11点59分,然后是每天开始的0点。分钟取值范围的定义逻辑类似。日:指在一个月中的哪一天执行任务,取值范围为1-31(区别于之前的分钟和小时从0开始)。月份:指任务执行的月份,取值范围1-12。周:指任务执行的星期几,从星期日开始,取值范围0-6(对应星期日、星期一到星期六)。command:是你要运行的命令任务。关于“分时日月周”部分更详细的理解,可以参考crontabguru网站,可以帮助你理解正在执行的是什么。按照前面的例子*****touch~/crontab_test,意思是每分钟创建一个~/crontab_test文件。我们把这个任务编辑到crontab里面看看执行结果:等到下一分钟,你会发现你的home目录下多了个文件crontab_test:这是cron的基本应用例子。一个实用的定时任务示例假设你想创建一个脚本,将多个目录的内容复制到一个路径中,并打包作为备份。怎么做?这个功能可以通过cron定时任务轻松实现。请查看以下脚本:#!/usr/bin/bashecho"Backingup..."mkdir-p~/.local/tmp/tar-Pc~/Documents/-f~/.local/tmp/backup.gz该脚本执行以下操作:确保备份路径目录~/.local/tmp/存在。将~/Documents/目录下的所有内容打包成文件~/.local/tmp/backup.gz。让我们先手动运行脚本,看看它是如何工作的。首先我们在主目录(~)下创建脚本,命令为backup_script,如下图所示:然后编辑backup_script脚本,编写上面的脚本代码。接下来给backup_script赋予可执行权限:最后运行脚本~/backup_script进行功能验证:可以通过命令tar-xf~/.local/tmp/backup.gz-C
