Кілька crontabs для одного користувача


13

чи є спосіб використовувати кілька файлів crontab для одного користувача? Обмірковуючи щось по лінії файлу crontab на проект замість crontab на користувача ...

Будь-яка допомога вдячна ...

Відповіді:


13

Зазвичай це гарна ідея зберегти свій crontab в окремому файлі та встановити його crontab filename. (Я зберігаю свій файл crontab у системі управління джерелом.)

Ви можете мати кілька файлів crontab та встановити їх усі

cat file1 file2 file3 | crontab

crontabКоманда зазвичай керує тільки один кронтаб для кожного користувача. Але ви можете додати до /etc/cron.dкаталогу системні файли crontab . Ці файли мають додаткове поле після специфікації часу, яке вказує користувача на роботу, і ви можете мати кілька файлів на кожного користувача. Навіть якщо одна з них має синтаксичну помилку, інші все одно виконають.

Вам знадобиться кореневий доступ, щоб встановити файли в цьому каталозі.

man 5 crontab для деталей.

Я не переконаний, що обхід нормального механізму кротобування, як це, є хорошою ідеєю, але це має працювати.

(Це передбачає реалізацію "Vixie Cron", яку, мабуть, використовує ваша система.)

ПРИМІТКА. Ви можете спробувати спробувати

crontab file1 file2 file3 # WRONG

але швидкий експеримент показує, що всі імена файлів, окрім першого, мовчки ігноруються. На головній сторінці написано, що прийнято одне ім’я файлу, але не сказано, що станеться, якщо надано кілька імен файлів.


Я це зробив сьогодні. Це було б легко зробити, але мета цього полягає в тому, щоб кожен "менеджер" проекту мав контроль над власним кронаб. При такому підході його потрібно поєднувати так, що кожен раз, коли хтось змінює один із файлів, а значить, їм доведеться відслідковувати всі файли, які потрібно скомпілювати

1
Тож створіть програму (або сценарій, чи будь-що інше) для автоматизації. Зауважте, що ви можете викликати 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 поза нею) чудово вписується в рахунок.
barrycarter

4

Навіщо ти це робив? Ви можете використовувати кілька рядків у crontab - я думаю, що це теж зробило б свою роботу.

Є також каталоги, які ви, ймовірно, могли використовувати:

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

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