Crontab 实例

Crontab 实例

我一直在研究任务调度之类的东西。我偶然发现了 crontab 命令功能。

crontab 是一个创建的文件还是一个命令?

如果是文件,那么一个用户可以拥有多少个文件?它们是用户特定的还是系统特定的(例如,如果我使用 crontab 创建任务,当另一个用户登录系统时,该任务是否会执行?)

如果它是一个命令,那么它将执行任务的信息存储在哪里?

答案1

该命令crontab -e将创建一个文件,但您不需要知道这一点,并且永远不要手动编辑它。

man crontab向您展示各种选项,其中最重要的是:

  • crontab -e编辑
  • crontab -l列表

请注意,作为 cron 作业的环境与您在交互式 shell 中习惯的环境完全不同。最简单的检查方法是按如下方式设置 cron 作业:

* * * * * set > /tmp/environment.log

# | | |  \day of week    0-7 (0 or 7 is Sun, or use names)
# | |  \--month          1-12 (or names, see below)
# |  \----day of month   1-31
#  \------hour           0-23
#\--------minute         0-59

有关 crontab 本身的语法,请检查man 5 crontab

然后等待一分钟并再次删除 cronjob,因为否则这个无意义的作业将每分钟运行一次。

set然后检查交互式 shell (只需输入) 和 cronjob (只需输入cat /tmp/environment)之间的区别。特别是PATHSHELL可能会让你感到惊讶。

答案2

如果你对按常规安排任务感兴趣用户Ubuntu 中的帐户(即你没有做系统范围的事情,因为),则应跳过 、 、 和 的cron所有crontab具体at内容anacron

相反,看看计划任务应用程序可通过 Unity Dash 或类似的应用程序菜单在 Ubuntu 中使用。它极大地简化了安排项目的工作。它的使用存在一些“陷阱”,但这样您就不必在命令行中执行任何操作。

例如,我有一个小备份脚本,我定期使用它运行计划任务(该程序基本上将项目插入到您的 crontab 等中。)

计划任务提供两种不同的视图。一种视图经过简化,如下所示:

在此处输入图片描述

另一个视图显示了 crontab 将显示的内容:

在此处输入图片描述

其中一个“陷阱”是您的正常“PATH”不适用于特定的计划项目,因此您需要明确要运行什么命令。

cron无论如何,、、和crontab的细节都太宽泛,无法特定于 Ubuntu。 atanacron

相关内容