Mysqldump в cronjob на Ubuntu

#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. Спасибо за ответ, я нашел проблему (которая была пропущена здесь при цензуре моего пароля): у меня были символы% в моем пароле, которые мне пришлось экранировать. Теперь это работает нормально 🙂