4

Я пытаюсь понять, почему 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 не признает это.

Это ошибка? Возможно, предполагалось, что в конце файла будет отдельная строка в конце файла, и в этом случае документация вводит в заблуждение. Или, возможно, я не правильно понимаю "новую строку" в этом контексте ...Некоторые разъяснения по этому вопросу будут оценены.

0