#ubuntu #cron #mysqldump #crontab
#ubuntu #mysql #cron
Вопрос:
Я пытаюсь настроить cronjob на сервере Ubuntu для запуска mysqldump каждую ночь.
В моем поиске Google я нашел различные советы, но я все еще не могу заставить это работать. Вот что у меня есть прямо сейчас:
Команда (которая отлично работает при запуске в командной оболочке):
/usr/bin/mysqldump -uuser -p****** dbname tablename > /var/sql_dump/dump.sql
Я добавляю это в cronjob, выполнив
sudo crontab -e
И добавление строки:
0 0 * * * /usr/bin/mysqldump -uuser -p****** dbname tablename > /var/sql_dump/dump.sql
Но когда оно достигает этого времени (в данном случае 00:00), файл не создается. При запуске команды в командной оболочке выполнение даже не занимает секунды, поэтому оно должно быть быстрым.
По чьему-то предложению я также запускаю
sudo /etc/init.d/cron restart
Но безрезультатно (cron перезапускается, но файл по-прежнему не создается).
Кто-нибудь может заметить что-то, что я, возможно, пропустил? Очень благодарен за ответы. 🙂
Редактировать: Я обнаружил проблему (которая была пропущена здесь при цензуре моего пароля): в моем пароле были символы%, которые мне пришлось экранировать. Теперь все работает нормально 🙂
Ответ №1:
Я не совсем уверен, является ли это причиной, но я бы создал сценарий оболочки, который инкапсулирует всю команду, включая параметры и конвейер, и запустил этот скрипт из cron. Таким образом, вы убедитесь, что параметры и конвейер не влияют на процесс cron.
Вы могли бы выполнить поиск в своем системном журнале сообщений об ошибках от cron, связанных с задачей. Они должны быть зарегистрированы там.
Комментарии:
1. Спасибо за ответ, я нашел проблему (которая была пропущена здесь при цензуре моего пароля): у меня были символы% в моем пароле, которые мне пришлось экранировать. Теперь это работает нормально 🙂