Практическое задание

Эта задача — шаг 6 курса «Cron: задачи по расписанию»

Отчёт по cron молчит с утра

легко~2 мин

Утренний отчёт должен собираться по cron в 06:30, но не собирается. Строка в crontab root на месте, а в /var/log/report.log только ошибка запуска. Найди причину и почини сам скрипт /opt/reports/make-report.sh так, чтобы cron смог его запустить. Расписание и содержимое скрипта не меняй.

Что потренируешь:
  • cron
  • диагностика
  • бит выполнения
  • chmod
  • логи cron

Разбор темы

Когда задача cron «не работает», её разбирают по шагам: есть ли строка и правильное ли расписание (crontab -l), запускал ли cron команду и что она вывела (лог, куда перенаправлен вывод), и в каком состоянии сама программа. Если в строке указан путь к скрипту, ядро запускает его через exec(), а для этого у файла должен стоять бит выполнения — иначе Permission denied, сколько бы ни был правилен шебанг. Чинят это сменой режима файла, а не переписыванием крона (обход через bash скрипт лечит симптом, но прячет причину).

Что проверяется

  1. скрипт исполняемый
  2. содержимое скрипта не изменено
  3. строка cron на месте

Как это выглядит