如何在Linux上调度任务:Crontab文件简介

Linux上的cron守护进程在特定时间在后台运行任务;它类似于Windows上的Task Scheduler。使用适当的语法将任务添加到系统的crontab文件中,cron将自动为您运行这些任务。

Crontab文件可用于自动执行备份、系统维护和其他重复性任务。语法强大而灵活,因此您可以每15分钟运行一次任务,也可以在每年特定一天的特定分钟运行一次任务。

打开Crontab

首先,从Linux桌面的应用程序菜单打开一个终端窗口。如果您使用的是Ubuntu,您可以单击Dash图标,键入Terminal,然后按Enter键打开一个。

使用crontab-e命令打开您的用户帐户的crontab文件。此文件中的命令使用您的用户帐户的权限运行。如果希望命令以系统权限运行,请使用sudo crontab-e命令打开root帐户的crontab文件。如果您的Linux发行版不使用sudo,请使用su-c“crontab-e”命令。

系统可能会要求您选择一个编辑器。通过键入其编号并按Enter键选择Nano(如果可用)。高级用户可能更喜欢VI和其他更高级的编辑器,但Nano是一个很容易上手的编辑器。

您将看到Nano文本编辑器,该编辑器由终端窗口顶部的“GNU Nano”标题标识。如果没有,crontab可能会在vi文本编辑器中打开。

如果您不习惯使用vi,可以键入:退出到vi,然后按Enter键关闭它。运行export Editor=nano命令,然后再次运行crontab-e以在Nano中打开crontab文件。

添加新任务

使用箭头键或PAGE DOWN键滚动到Nano中crontab文件的底部。以#开头的行是注释行,这意味着cron会忽略它们。注释只是向编辑文件的人提供信息。

crontab文件中的行按以下顺序编写,具有以下可接受的值:

您可以使用星号(*)字符来匹配任何值。例如,使用星号表示月份将导致该命令每月运行一次。

例如,假设我们想要在凌晨12:30运行命令/usr/bin/example。每天。我们会键入:

我们用29表示30分钟,用0表示上午12点。因为分钟、小时和工作日的值从0开始。请注意,日和月的值从1开始,而不是从0开始。

多个值和范围

多次使用逗号分隔值指定。例如,这行

每天每小时在15分钟标记处运行/usr/bin/example2。确保在新行上添加每个新任务。

使用破折号分隔值来指定值的范围。例如,这行

每天中午运行/usr/bin/example3,但仅在一年的前六个月运行。

保存文件

按Ctrl-O并按Enter将crontab文件保存到Nano中。保存文件后,使用Ctrl-X快捷键关闭Nano。

您将看到“crontab:正在安装新的crontab”消息,表明您的新crontab文件已成功安装。