Запуск crontab вручную cron.hourly возвращает ошибку отсутствующего файла - PullRequest
0 голосов
/ 26 июня 2019

Я изо всех сил пытался понять, как crontab и logrotate работают вместе, и я хожу по кругу.
Я взял строку из / etc / crontab и запустил:

$ sudo run-parts --report /etc/cron.hourly
/etc/cron.hourly/logrotate:
run-parts: failed to exec /etc/cron.hourly/logrotate: No such file or directory
run-parts: /etc/cron.hourly/logrotate exited with return code 1

$ run-parts --report /etc/cron.hourly
/etc/cron.hourly/logrotate:
run-parts: failed to exec /etc/cron.hourly/logrotate: No such file or directory
run-parts: /etc/cron.hourly/logrotate exited with return code 1

Файл logrotate существует в /etc/cron.hourly:

$ ll /etc/cron.hourly/
total 16
drwxr-xr-x  2 root root 4096 Jun 25 15:43 ./
drwxr-xr-x 94 root root 4096 Jun 26 10:20 ../
-rwxrwxr-x  1 root root   98 Jun 26 13:00 logrotate*
-rw-r--r--  1 root root  102 Feb  9  2013 .placeholder

Полагаю, именно поэтому мои последние изменения в ротации журналов ежечасно не работают.

Странно, когда я бегу:

$ sudo run-parts --report /etc/cron.daily

Он просто зависает, пока я не нажму Ctrl + C, чтобы отменить его.

Мой /etc/cron.hourly/logrotate выглядит так:

#!/bin/sh
test -x /usr/sbin/logrotate || exit 0
/usr/sbin/logrotate /etc/logrotate_hourly.conf

Если я запускаю следующее:

sudo /usr/sbin/logrotate /etc/logrotate_hourly.conf

Затем он вращает журналы точно так, как должен.

Это заставляет меня предположить, что упомянутая выше ошибка - моя проблема.
У кого-нибудь есть идеи, которые они могут дать мне относительно того, что я пропустил? Приветствия

Обновление
из того, что было рекомендовано ниже, я преобразовал мой /etc/cron.hours/logrotate в окончание строки Unix.
Это означало, что запуск команды crontab вручную в терминале работал. Нет ошибок, и журналы были повернуты правильно.

Однако crontab по-прежнему не работает автоматически.

1 Ответ

0 голосов
/ 26 июня 2019

Ответ здесь был во время моего развертывания, я пропустил файл с окончанием строки Windows.С помощью dos2unix на сервере все исправлено.

Выполнение:

sudo service cron reload

Требуется после редактирования "/ etc / crontab" - я думал, что несколько раз прочитал, что это не нужно.

...