【问题标题】:crontab: which one is the right job definition?crontab:哪一个是正确的工作定义?
【发布时间】:2016-06-10 01:18:44
【问题描述】:

哪个是crontab 工作的正确定义?
在执行路径之前有没有user

 .---------------- minute (0 - 59)
 |  .------------- hour (0 - 23)
 |  |  .---------- day of month (1 - 31)
 |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
 |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
 |  |  |  |  |
 *  *  *  *  * <user>  <command>

在 Debian 上,crontab -l 显示一个备份示例:

....
For example, you can run a backup of all your user accounts
at 5 a.m every week with:
0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
...

这里没有user!!
/etc/crontab 内容(在同一个盒子上)给出了不同的线索:

....
and files in /etc/cron.d. These files also have username fields,
that none of the other crontabs do.
...

【问题讨论】:

  • 每个用户的 crontab 没有用户名,因为用户始终是文件的所有者。全局 /etc/crontab 文件有一个额外的用户名字段。
  • 这不是编程问题。有关 Unix 的问题属于 unix.stackexchange.com。

标签: linux cron crontab


【解决方案1】:

crontab 不允许 * 允许指定用户以...

...除非您在根 crontab 中。

如果您查看我的favorite linux admin reference,您不会接近底部,即作为特定用户运行某些 chrontab 条目有一些技巧。但是,如果您愿意,最好的做法是编辑用户的 crontab:

crontab -u <username> -e

如果你必须...

0 0 * * * sudo -u [user] [command]

但这只能在具有 sudo 权限的用户的 crontab 中完成,正如fcm 指出的那样,这样的用户可以只编辑根 crontab。

大多数版本的 'NIX 都需要根 crontab 中的用户 /etc/crontab

0 0 * * * [user] [command]

结论

如果您想指定哪个用户正在运行特定的 cron 作业,最佳做法是执行以下操作之一,具体取决于用例:

  1. 根 crontab
    • /etc/crontab
    • sudo crontab
    • &lt;time&gt; &lt;user&gt; &lt;command&gt;
  2. 用户 crontab
    • crontab -u &lt;username&gt; -e
    • &lt;time&gt; &lt;command&gt;

【讨论】:

  • 这需要解释为:如果在根 crontab 上定义,则必须指定“用户”,对于 $USER crontab,用户不能在场。关于 sudo:如果你属于 sudo 组,为什么不使用 root crontab 来启动...顺便说一句:/var/spool/cron/crontabs/$USER 是临时文件,在重新启动时可能不会保留。 /etc/cron.d/ 上的文件也被视为“根”。
  • 为什么要写“您可以按照您的描述指定用户,但只能在根 crontab 中。”:它要么是“必须”,要么是“不得”;我无法用我有限的计算机语言编译动词“可能”。
  • @fcm,不要忘记 linux 可以进行大量定制,并且某些发行版的行为会有所不同。这就是为什么 可能 应该出现在您的词汇表中,除非您谈论的是特定发行版。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-15
  • 2013-09-15
  • 2017-07-13
  • 1970-01-01
  • 2012-11-01
相关资源
最近更新 更多