一位用户的多个crontab


13

有没有办法为一个用户使用多个crontab文件?根据每个项目的crontab文件而不是每个用户的crontab进行思考...

任何帮助表示赞赏...

Answers:


13

通常,最好还是将crontab维护在一个单独的文件中,然后使用进行安装crontab filename。(我将crontab文件保存在源代码控制系统中。)

您可能有多个crontab文件,并使用

cat file1 file2 file3 | crontab

crontab命令通常只为每个用户管理一个crontab。但是您可以将系统crontab文件添加到该/etc/cron.d目录中。这些文件在时间指定之后有一个额外的字段,用于指示作业的用户,并且每个用户可以有多个文件。即使其中之一出现语法错误,其他代码仍将执行。

您需要root用户访问权限才能在该目录中安装文件。

man 5 crontab 有关详细信息。

我不认为绕过这种常规的crontab机制是个好主意,但应该可以。

(这假设“ Vixie Cron”实现,这可能是您的系统使用的实现。)

注意:您可能会尝试尝试

crontab file1 file2 file3 # WRONG

但是快速实验表明,除了第一个文件名外,所有文件名都被静默忽略。手册页说接受单个文件名,但是没有说明如果提供多个​​文件名会发生什么。


我今天做了。这样做很容易,但是这样做的目的是使每个项目“经理”都可以控制自己的crontab。使用这种方法,必须像每次有人更改一个文件时那样将其组合起来,这意味着他们将必须跟踪所有需要编译的文件

1
因此,创建一个程序(或脚本,或其他任何东西)以使其自动化。请注意,您可以crontab从crontab条目调用该命令。
基思·汤普森

1
@MateuszKonieczny:这是一个很好的理由,但这也很容易意外删除您的crontab。crontab不带参数的从stdin读取新的crontab。
基思·汤普森

1
@MateuszKonieczny:不,我只是将其保存在CVS仓库中,并$HOME在更新时将其保存到。(我使用CVS是因为开始时Git不存在。)
Keith Thompson

1
@KeithThompson哦,知道了!我正在创建一个文档,以帮助人们从头开始运行Fedora Core 24,而无需进行任何开发或使用gnome:github.com/barrycarter/bcapps/blob/master/FEDORA,并希望共享我的cron文件的一部分,但不是全部。您的解决方案(在GIT目录中创建bc-public-cron并在其外部创建bc-private-cron)非常合适。
barrycarter

4

为什么要这么做?您可以在crontab中使用多行-我认为这也可以完成这项工作。

您可能还会使用以下目录:

cron.d/
cron.daily/
cron.hourly/
cron.monthly/
cron.weekly/

那就是现在的样子:)我只是想知道是否有办法做到这一点
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.