Чому копійки не зберігаються в домашніх довідниках користувачів?


35

Мені цікаво дізнатись: чому хронометри зберігаються в / var, а не в домашніх довідниках користувача? Ізолювати ці файли для оновлення це загальний біль, але я підозрюю, що є логічна причина ...

Відповіді:


41

Я думаю про кілька причин:

  • У корпоративних середовищах ви можете мати тисячі користувачів. Якщо так, то Cron повинен буде сканувати кожну хвилину через каталог кожного користувача, щоб перевірити наявність файлу crontab (чи створено, видалено чи змінено).
    Тримаючи їх в одному місці, не потрібно робити це інтенсивне сканування.
  • Домашні каталоги можуть бути не завжди доступними. Якщо в домашніх каталогах встановлено автофайли, вони можуть бути встановлені. Якщо крон перевірятиме їх щохвилини, це призведе до їх встановлення та запобігає їх відключенню через бездіяльність. Крім того, якщо домашній каталог зашифрований та розшифрований паролем користувача, cron не зможе потрапити до домашнього каталогу, якщо користувач не ввійшов у систему та не розшифрував / змонтував його.
  • Домашні каталоги можуть ділитися між хостами. Якщо домашній каталог є мережевою часткою, той самий домашній каталог з’явиться на кількох хостах. Але ви, можливо, не хочете, щоб ваші крон-роботи працювали на кожному хості, лише на одному з них.

1
+1 Хоча традиційно cronне переглядали ці файли щохвилини; він завантажив їх один раз і лише перечитав їх по сигналу.
goldilocks

7
Але ви праві щодо пункту №3; згідно з Вікіпедією, кронтаби були спочатку в $ HOME, поки "[Bell lab devs] включив Unix при команді в cron, не перемістив файли crontab з домашніх каталогів користувачів (які не були специфічними для хоста) і в загальний для хоста Каталог spool ... "Це також crontabбуло створено команду, яка могла мати справу з проблемою перезавантаження.
goldilocks

2
@Patrick Або коли програма використовує utimesсистемний виклик, в якості аргументу якого є шлях до каталогу котушки, щоб встановити mtime каталогу, що і робить команда Vixie cron crontab.
Марк Плотнік

2
Ранні версії cron, безумовно, не змінювали файли користувачів crontab, якщо вони не були відредаговані через crontab -e. Мене це

2
У програмі Solaris 10, crontab -eщо має кореневий параметр, пише повідомлення, /etc/cron.d/FIFOпісля того як користувач редагує кронтаб.
Марк Плотнік
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.