Должен ли я сохранить свой файл crontab в / tmp?

11

Я ssh на сервер и хочу добавить некоторые ежедневные задания (в частности, чтобы обновить билеты Kerberos, даже когда я выхожу из системы, и я все еще хочу, чтобы мои программы на экране или tmux продолжали работать) в cron. Итак, я запускаю crontab -eи добавляю следующее:

00 00 * * * kinit -R
00 12 * * * kinit -R

Когда я сохраняю его, меня спрашивает редактор:

File Name to Write: /tmp/crontab.HMpG7V 

Разве файлы не /tmpмогут быть удалены ОС? Особенно после того, как я выйду из сервера?

Где мне хранить файл crontab? Могу ли я сохранить файл crontab в $ HOME или в каком-нибудь другом месте?

Тим
источник
Могу ли я сохранить файл crontab в $ HOME? Зачем мне нужна символическая ссылка?
Тим

Ответы:

15

crontab -eоткрывает файл в / tmp вместо фактического crontab, чтобы он мог проверить ваш новый crontab на наличие ошибок и не дать вам перезаписать ваш реальный crontab с этими ошибками. Если ошибок нет, то ваш текущий crontab будет обновлен. Если бы вы crontab -eпросто написали прямо в ваш реальный crontab, вы бы рискнули не запустить все ваши cronjobs из-за синтаксической ошибки в вашем новом crontab.

sudoedit, visudo, vipwИ т.д. работают по тому же принципу.

Не волнуйтесь, ваш настоящий crontab живет в энергонезависимой папке на диске.

jayhendren
источник
где хранится мой файл crontab? Если я выйду из сервера, что произойдет с моим файлом crontab? (Я не администратор, и у меня нет корневого доступа к серверу)
Тим
1
Ваш фактический crontab живет где-то /var/spool(обычно), но вы никогда не должны касаться своего фактического crontab, и вам никогда не нужно, либо - используйте crontab -eвместо этого. Вероятно, у вас нет прав доступа для редактирования необработанного файла crontab.
Джейхендрен
если вы выйдете из системы, с вашим crontab ничего не случится. он не живет в / TMP.
Джейхендрен
(1) Является ли файл crontab отдельным пользователем или для всех пользователей? (2) Как я могу проверить, работает ли мое редактирование в файл crontab?
Тим
crontabs за пользователя. чтобы убедиться, что ваш cronjob работает, вы можете проверить логи cron. обычно в /var/log/cron.log, но это могут быть и другие места.
Джейхендрен
5

/tmpгде временный файл crontab записывается в. После сохранения и выхода crontabизменения будут зафиксированы в другом, более подходящем каталоге в вашей системе (обычно в /var/spool/cron, если я правильно помню). Так что не волнуйтесь, операционная система может удалить ваш / tmp, но он никогда не уберет ваши crontabs.

Valmiky Arquissandas
источник
1

Файлы Crontab находятся в / var / spool / cron / crontabs / под своим именем пользователя или идентификатором пользователя. Так как могут возникнуть ситуации, когда расположенный здесь crontab больше не подключен к вашей учетной записи, рекомендуется сохранить копию в домашнем каталоге, например, /home/userid/.crontab, чтобы вы могли легко восстановить ее, если вам нужно к. Это также позволяет вам поставить его под контроль версий, если хотите.

Если ваш домашний каталог перемещен в другую систему, часто crontab из каталога спула не сопровождает его, если ваш системный администратор не примет это во внимание. Кроме того, / var / spool не всегда резервируется и не восстанавливается, когда необходимо выполнить повторную настройку системы.

Итак, еще раз, рекомендуется, чтобы копия вашего crontab хранилась в вашем домашнем каталоге.

Используйте ваш любимый редактор (pico, vi, emacs и т. Д.) Для редактирования ~ / .crontab, а затем используйте crontab, чтобы применить его к / var / spool / crontabs. Нравится:

% pico ~/.crontab; crontab ~/.crontab

Если вам нравятся псевдонимы, вы можете сделать так, чтобы они запускались.

Jonathans
источник
1
Нужно ли что-то делать, чтобы файл crontab моего дома переопределял файлы crontab в другом месте?
Тим
Просто запустите «crontab ~ / .crontab», и вы примените его к каталогу / var / spool / cron / crontabs. Используйте pico, emacs или vi для редактирования ~ / .crontab, прежде чем вносить какие-либо изменения.
JonathanS
Это на самом деле не отвечает на вопрос.
никто не
@AndrewMedico: Основной вопрос, казалось, был: «Где мне хранить мой файл crontab? Могу ли я сохранить файл crontab в $ HOME или в каком-нибудь другом месте?» Или вы имеете в виду вопрос Тима в комментарии здесь?
JonathanS