crontab:哪一个是正确的工作定义?

时间:2016-06-08 23:55:45

标签: linux cron crontab

哪一项是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.
...

1 个答案:

答案 0 :(得分:0)

crontab *允许指定用户运行...

...除非您在根crontab中。

如果您查看我的favorite linux admin reference,那么您不会在底部附近运行某些chrontab条目作为特定用户。但是,如果您希望这样做,最好的做法是编辑用户的crontab:

crontab -u <username> -e

如果你必须......

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

但这只能在具有sudo权限的用户的crontab中完成,而fcm指出,这样的用户只能编辑root crontab。

大多数版本的NIX需要root crontab中的用户/etc/crontab

0 0 * * * [user] [command]

结论

如果要指定哪个用户正在运行特定的cron作业,最佳做法是根据用例执行以下操作之一:

  1. root crontab
    • / etc / crontab中
    • sudo crontab
    • <time> <user> <command>
  2. 用户crontab
    • crontab -u <username> -e
    • <time> <command>