Скрипт руками отрабатывает идеально, из cron — тишина. Причина почти всегда одна: окруж...
Скрипт руками отрабатывает идеально, из cron — тишина. Причина почти всегда одна: окружение. Cron запускает задание с минимальным набором переменных. Нет вашего PATH, нет переменных из профиля, нет виртуального окружения Python, домашний каталог может быть другим. Скрипт, который зовёт mysqldump без полного пути, из cron просто не находит его. Что делать. Указывать полные пути ко всем командам. Явно задавать переменные внутри скрипта, а не надеяться на профиль. Или в первой строке задания указать окружение через env. Второе по частоте — вывод. Cron отправляет его почтой, а почта не настроена, поэтому ошибки исчезают бесследно. Всегда добавляйте перенаправление: >> /var/log/имя.log 2>&1. Тогда причина сохранится. Третье — проценты. В строке задания знак процента имеет специальное значение и обрезает команду. В date +%Y его нужно экранировать обратным слэшем. Проверить, что cron вообще пытался запустить задание, можно в системном журнале: journalctl -u cron или grep CRON /var/log/syslog. И совет: для чего-то важнее уборки мусора лучше systemd-таймер — у него есть логи, статус и зависимости. На чём у вас чаще всего спотыкался cron?