Я пытаюсь понять, почему cron отказывается работать с определенным файлом crontab. Справочная страница для crontab гласит:
cron требует, чтобы каждая запись в crontab заканчивалась символом новой строки. Если в последней записи в crontab отсутствует символ новой строки, cron сочтет crontab (по крайней мере, частично) неисправным и откажется его устанавливать.
Имеется следующий файл cron:
# managed by Fabric$ $ SHELL=/bin/sh$ PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin$ $ # m h dom mon dow user command$ 17 * * * * root cd / && run-parts --report /etc/cron.hourly$ 25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )$ 47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )$ 52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )$ $ # Postgres monitoring$ * * * * * postgres cd / && /etc/cron.d/pgup.sh$ */5 * * * * postgres cd / && /etc/cron.d/aws-scripts-mon/mon-put-instance-data.pl --mem-avail --disk-space-util --disk-path=/mnt$ $ # Postgres Backup$ 00 00 * * * postgres /etc/cron.d/pgbackup.sh$
Отметив, что символ «$» обозначает символ LF (формат vim unix).
И я получаю следующую ошибку в системном журнале при перезапуске cron:
31 марта, 17:34:02 postgres-primary0 cron [30852]: (system) ОШИБКА (отсутствует новая строка перед EOF, этот файл crontab будет игнорироваться)
Добавление пустой строки в конец файла cron не приводит к ошибке при перезапуске cron.
Заключение:
Насколько я могу судить, последняя запись заканчивается символом новой строки. Таким образом, кажется, что crontab не признает это.
Это ошибка? Возможно, предполагалось, что в конце файла будет отдельная строка в конце файла, и в этом случае документация вводит в заблуждение. Или, возможно, я не правильно понимаю "новую строку" в этом контексте ...Некоторые разъяснения по этому вопросу будут оценены.