Несколько crontabs для одного пользователя


13

Есть ли способ использовать несколько файлов crontab для одного пользователя? Думая что-то вроде файла crontab для проекта вместо crontab для пользователя ...

Любая помощь приветствуется ...

Ответы:


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

но быстрый эксперимент показывает, что все имена файлов, кроме первого, игнорируются. Страница man говорит, что принимается одно имя файла, но не говорит, что происходит, если указано несколько имен файлов.


Я сделал это сегодня. Это было бы легко сделать, но цель этого в том, чтобы каждый «менеджер» проекта мог контролировать свой собственный crontab. При таком подходе его нужно будет комбинировать таким образом каждый раз, когда кто-то изменяет один из файлов, а это значит, что ему придется отслеживать все файлы, которые необходимо скомпилировать

1
Поэтому создайте программу (или сценарий, или что-то еще) для ее автоматизации. Обратите внимание, что вы можете вызвать crontabкоманду из записи crontab.
Кит Томпсон

1
@MateuszKonieczny: Это хорошая причина, но легко и случайно удалить ваш crontab. crontabбез аргументов читает новый crontab из stdin.
Кит Томпсон,

1
@MateuszKonieczny: Нет, я просто держу его в репозитории CVS и копирую, $HOMEкогда обновляю. (Я использую CVS, потому что Git не существовало, когда я начал это делать.)
Кит Томпсон,

1
@KeithThompson О, понял! Я создаю документ, чтобы помочь людям запускать Fedora Core 24 с нуля без всякой эволюции или gnome: github.com/barrycarter/bcapps/blob/master/FEDORA, и я хотел бы поделиться частью моего файла cron, но не всем. Ваше решение (создание bc-public-cron в каталоге GIT и bc-private-cron вне него) прекрасно подходит для всех.
Баррикартер

4

Почему ты бы так поступил? Вы можете использовать несколько строк в crontab - я думаю, что это тоже подойдет.

Есть также каталоги, которые вы, вероятно, могли бы использовать:

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

Вот как это сейчас :) Я просто хотел бы знать, есть ли способ сделать это
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.