@svakhovksyy

Что не так с записью в crontab?

Что не так с записью в crontab??
Пишу так:
@midnight  bash /bin/bash ~/backup.sh > /tmp/tmp.cron

В /tmp/tmp.cron после запуска ничего не записывает.
  • Вопрос задан
  • 871 просмотр
Решения вопроса 1
1. Проверьте бит исполнения (x) на скрипте ~/backup.sh командой
ls -la ~/backup.sh
если нет бита execute (x), то ставьте:
chmod a+x ~/backup.sh

2. Проверьте логи cron
cat /var/log/syslog | grep CRON | grep backup.sh

3. Всегда! Повторяю, Всегда указывайте полный путь к запускаемому скрипту, то есть
@midnight bash /full/path/backup.sh >/var/log/backup.log 2>&1


4. Рекомендую организовать вывод отладочной информации и обработку ошибок в лог на уровне скрипта, а в crontab писать конструкцию:
@midnight bash /full/path/backup.sh >/dev/null 2>&1

чтобы перенаправить все потоки вывода и ошибок в /dev/null

если вы напишите конструкцию вида
@midnight bash /full/path/backup.sh >/dev/null
то только поток вывода будет перенаправлен в /dev/null, если произойдет ошибка выполнения скрипта, то cron уведомит пользователя root на email (при условии правильной настройки рассылки на сервере)
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
Afinogen
@Afinogen
PHP разработчик
А зачем у вас bash /bin/bash ?
Достаточно bash ~/backup.sh > /tmp/tmp.cron
Ответ написан
@kisaa
Я бы вместо ~ указал точный путь.
Ответ написан
ky0
@ky0
Миллиардер, филантроп, патологический лгун
Пользователь bash на сервере существует?

upd. попробуйте вот так:
0 0 * * * %username% %абсолютный_путь_к скрипту%/backup.sh > /tmp/tmp.cron


в скрипте в первой строчке должен быть указан интерпретатор - #!/bin/bash
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы