如何设置 Cron 作业?

如何设置 Cron 作业?

我想安排一项任务定期运行,听说 Cron 是实现这一目标的方法。

如何在 Ubuntu 中添加 Cron 作业?

答案1

将 Shell 脚本放入以下文件夹之一:/etc/cron.daily/etc/cron.hourly/etc/cron.monthly/etc/cron.weekly

如果这些还不够,您可以添加更具体的任务,例如每月两次或每 5 分钟一次。转到终端并输入:

crontab -e

这将打开您的个人 crontab(cron 配置文件)。该文件的第一行说明了一切!在每一行中,您可以定义一个要运行的命令及其计划,当您掌握它时,格式非常简单。结构如下:

minute hour day-of-month month day-of-week command

对于所有的数字,您都可以使用列表,例如5,34,55在分钟字段中,表示在定义的小时数 5 点、34 点和 55 点运行。

您还可以使用间隔。它们的定义如下:*/20。此示例表示每 20 天,因此在分钟列中它相当于0,20,40

因此,每周一下午 5:30 运行命令:

30 17 * * 1 /path/to/command

或每 15 分钟

*/15 * * * * /path/to/command

请注意,星期几的范围是 0-6,其中 0 表示星期日。

您可以阅读更多这里

答案2

如果您想要运行的作业可以使用与您的用户相同的权限运行,我建议使用用户 crontab,您可以通过运行EDITOR="gedit" crontab -e(将使用 gedit 来编辑 crontab 文件)或简单地crontab -e(将使用默认编辑器)在终端中对其进行编辑。

例如,如果你想每 10 分钟运行一次,可以添加如下代码

*/10 * * * * /usr/bin/somedirectory/somecommand

并保存文件。

您可以使用 查看用户 crontab 的内容crontab -l

要添加以 root 身份运行的 cron 作业,您可以通过运行来编辑 root 的 crontab sudo crontab -e

最灵活的方法是使用系统 crontab /etc/crontab,您只能使用 root 权限来编辑它。在此文件中,指定了每个命令的运行用户,因此您可以以 root(如果您需要该级别的权限)或系统上的任何其他用户身份运行命令。

例如,如果你想以 root 身份每 10 分钟运行一次,你可以添加如下行

*/10 * * * * root /usr/bin/somedirectory/somecommand

(注意将用户添加到该行)

您可以使用 查看系统 crontab 文件的内容cat /etc/crontab

更多详情请见:https://help.ubuntu.com/community/CronHowto

答案3

如果你更喜欢使用 GUI,你可以前往软件中心并安装计划任务(或运行sudo apt-get install gnome-schedule)。它将提供一个强大的 GUI 来添加 cron 任务。

请注意,如果您使用此方法,默认情况下任务将以您自己的用户身份执行,而不是以 root 身份执行。这通常是一件好事。

答案4

我想设置一个 Cron 作业来通过 bash 脚本运行,因此执行该脚本将添加一个 cron 作业。

我意识到当你使用:

crontab -e 

然后它创建该文件:

/var/spool/cron/crontabs/root

其中 root 是运行 crontab 命令的用户的名称。因此,基于此,至少在 14.04 中,我们可以执行以下 bash 命令来创建新的 Cron 作业:

echo "30 17 * * 1 /path/to/command" > /var/spool/cron/crontabs/root

我们还需要为文件设置正确的所有权:

chown root:root /var/spool/cron/crontabs/root

并设置正确的权限:

chmod 600 /var/spool/cron/crontabs/root

如果运行时crontab -e列表中已经有 Cron 作业,那么您可以使用以下命令将其附加到列表中:

echo "30 17 * * 1 /path/to/command" >> /var/spool/cron/crontabs/root

相关内容