如何在Ubuntu 16.04 LTS中控制cron?

旧的gnome-schedule程序(在Raspbian Jessie下工作正常)在Ubuntu中已被弃用,从Ubuntu 14.04 LTS开始。

那么我们如何在Ubuntu 16.04中控制cron作业呢?

由于目前还没有基于GUI的cron控制器可用于Ubuntu 16.04,我们必须回到始终有效的老派方法 – 从命令行执行:

官方Ubuntu文档:CronHowto

精选摘录:

如需指导,您可以随时使用

 man crontab 

要编辑cron程序,请使用以下命令:

  crontab -e 

从手册页:

Crontab线

每行包含五个时间和日期字段,后跟一个命令,后跟一个换行符(’\ n’)。 字段由空格分隔。 五个时间和日期字段不能包含空格。 五个时间和日期字段如下:分钟(0-59),小时(0-23,0 =午夜),白天(1-31),月(1-12),工作日(0-6, 0 =星期天)。

 01 04 1 1 1 /usr/bin/somedirectory/somecommand 

上面的例子将在1月1日上午4:01和1月的每个星期一运行/ usr / bin / somedirectory / somecommand。

可以使用星号(*),以便使用时间段的每个实例(每小时,每个工作日,每月等)。

 01 04 * * * /usr/bin/somedirectory/somecommand 

上面的例子将在每个月的每一天凌晨4:01运行/ usr / bin / somedirectory / somecommand。

逗号分隔值可用于在一段时间内运行特定命令的多个实例。 划线分隔值可用于连续运行命令。

 01,31 04,05 1-15 1,6 * /usr/bin/somedirectory/somecommand 

以上示例将在每年1月和6月1日至15日凌晨4:00和凌晨5:00之后的01和31运行/ usr / bin / somedirectory / somecommand。

上面示例中的“/ usr / bin / somedirectory / somecommand”文本表示将在指定时间运行的任务。 建议您使用所需命令的完整路径,如上例所示。 在终端中输入somecommand以查找somecommand的完整路径。 crontab将在正确编辑和保存后立即开始运行。

您可能希望每个时间单元运行一次脚本若干次。 例如,如果要每10分钟运行一次,请使用以下crontab条目(在可被10:0,10,20,30等整除的分钟上运行)

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

这也相当于更麻烦

 0,10,20,30,40,50 * * * * /usr/bin/somedirectory/somecommand 

Cron还提供了一些特殊字符串,可用于代替五个时间和日期字段:

@reboot – 在启动时运行一次。

@yearly – 每年运行一次, "0 0 1 1 *"

@annually – (和@yearly

@monthly – 每月运行一次, "0 0 1 * *"

@weekly – 每周跑一次, "0 0 * * 0"

@daily – 每天跑一次, "0 0 * * *"

@midnight – (与@daily相同)

@hourly – 每小时跑一次, "0 * * * *"


请注意,所有cron作业都从用户的$HOME目录开始,因此建议在cron程序和脚本中使用完全限定的路径名​​。

你不能影响crontab,但有Orage时间/日历应用程序,通常在主菜单中激活。

在那里你也可以安排任务。

双击时钟,打开日历,然后双击一天。

选择一个新事件。 给它一个名字,例如,’Coffeetime’。 将时间设置为11:00。

现在选择选项卡:提醒,应用程序,使用:YOUR_PROGRAM_TO_SCHEDULE_HERE停用声音和其他不健全的选项。

现在选择标签:重复,频率:

  • 每日,每周,每月,每年
  • 每隔1天(例如每天),每隔一天2次,依此类推
  • 有更多选项可供选择(间隔暂停,即)

我有一个德语用户界面,所以也许我对标签的翻译不完全适合。