【问题标题】:Saving Crontab files保存 crontab 文件
【发布时间】:2011-09-15 20:09:05
【问题描述】:

关于 Crontab 的一个简单问题,我将 crontab 文件保存在哪里重要吗? (使用 crontab -e 创建与时间相关的作业)还是可以从任何目录读取它们?

我问是因为我的 crontab 文件似乎被删除了,因为当我使用 crontab -l 时它没有返回任何内容。但是,我认为那是因为我将其保存为临时文件:Creating more permanent crontab files

【问题讨论】:

  • 为什么以及如何将其保存为临时文件?你应该打电话给crontab -e 并且不应该担心它保存在哪里 - 我猜它通常保存在 /var/spool/cron/crontabs 下面 - 至少在 ubuntut 上是这样。
  • 通过编辑现有的 crontab,键入 crontab -e 并进行修改。然后单击转义键,然后键入 :wq,然后按回车键。

标签: bash unix cron


【解决方案1】:

通常,您使用crontab 创建文件,并将其存储在您机器的正确位置。

$ crontab < $HOME/etc/crontab

那你就用crontab -l列出来吧。

$ crontab -l
#   @(#)$Id: crontab,v 4.2 2007/09/17 02:41:00 jleffler Exp $
#   Crontab file for Home Directory for Jonathan Leffler (JL)
#-----------------------------------------------------------------------------
#Min     Hour    Day     Month   Weekday Command
#-----------------------------------------------------------------------------
0        *       *       *       *       /usr/bin/ksh /work4/jleffler/bin/Cron/hourly
1        1       *       *       *       /usr/bin/ksh /work4/jleffler/bin/Cron/daily
23       1       *       *       1-5     /usr/bin/ksh /work4/jleffler/bin/Cron/weekday
2        3       *       *       0       /usr/bin/ksh /work4/jleffler/bin/Cron/weekly
21       3       1       *       *       /usr/bin/ksh /work4/jleffler/bin/Cron/monthly
$

我保存我的原件的位置无关紧要(但它在 $HOME/etc 的源代码控制下发生)。系统在需要的地方有自己的文件副本。

如果您尝试手动放置文件,您会被咬。它可能会起作用,但话又说回来,它可能不会(并且将来可能会改变)。我不会玩冒险游戏,除了使用 kosher 命令来存储 crontab 文件以供 crontab 使用。

【讨论】:

    【解决方案2】:

    是的,cron 文件必须位于 /var/spool/cron(或类似的目录,取决于系统)。请参阅 man 8 cron

    【讨论】:

    • 但最有可能的是,您应该将它们放在/etc 的某个位置。
    • @larsmans:/etc/cron.{daily,hourly,weekly,monthly}/* 文件不是标准的 cron 文件。 /etc/cron.d/* 文件是标准的 cron 文件,但是是为包管理器设计的,而不是人类。人类应该使用 cron API,它将文件放置在您的特定系统应该去的任何地方。
    • @Seth: true,但如果/etc/cron.{daily,hourly,weekly,monthly} 可用,则优先于直接写信给/var/spool/cron
    【解决方案3】:

    如果您使用 cron api(大多数系统为 crontab -ecrontab filename),无论您是否注销,您的 cron 作业都将永久保存在适当的位置。

    唯一不会发生这种情况的方法是,如果您被行政禁止使用 cron(并不罕见)。

    记住您创建的文件格式是man 5 crontab 格式。这不是你的 shell 脚本。

    【讨论】:

      猜你喜欢
      • 2014-11-11
      • 1970-01-01
      • 2017-10-04
      • 2016-04-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-04
      相关资源
      最近更新 更多