mysqldump cron не сбрасывает

4305
Patrick

Я пытаюсь настроить cron для использования mysqldump один раз в день. Нет вывода, и я не вижу использования базы данных во время просмотра top. Crontab это:

mysqldump [database] -u[user] -p'[password]' > /home/newvtds/backups/db_backup_`date +\%Y-\%m-\%d_\%H-\%M-\%S`.sql 

Есть идеи?

РЕДАКТИРОВАТЬ: у меня есть другие кроны для того же пользователя, которые работают правильно

1
Вы пытались запустить эту команду из интерактивной оболочки? Вы получаете какие-либо ошибки таким образом? dmah 13 лет назад 0
он работает правильно без ошибок, когда я запускаю его вручную. время crontab равно `31 10 * * *` (я редактирую столбец минут, чтобы проверить, как работает нормальный crontab [I'm EST]) Patrick 13 лет назад 0
Попробуйте: sudo grep cron / var / log / syslog, чтобы убедиться, что он запущен. dmah 13 лет назад 0
У меня нет этого файла журнала в этой системе, я нахожусь на CentOS 5 Patrick 13 лет назад 0
Я не запускаю CentOS, но попробуйте проверить / var / log / messages. dmah 13 лет назад 0
У меня есть пустой файл сообщений. Это есть, но пусто. Patrick 13 лет назад 0
Cron работает? пс-эльф | grep cron. Есть ли у вас какие-либо файлы журналов, которые не являются пустыми? У моей коробки RHEL есть / var / log / cron dmah 13 лет назад 0
я запустил ps и получил: `5 S root 17863 1 0 75 0 - 812 stext Dec10? 00:00:03 crond` большинство файлов журнала, которые содержат текст, заполнены `^ @`, но имеют другой текст, разбросанный по всему файлу Patrick 13 лет назад 0
Любой файл / var / log / cron? Можете ли вы перезагрузить сервер? Или, может быть, перезапустить демон cron? sudo /etc/init.d/crond restart dmah 13 лет назад 1
я перезапустил службу crond, и она начала работать. кажется, что код всегда был хорош, была только ошибка в Crond Patrick 13 лет назад 0

4 ответа на вопрос

3
fjyaniez

В записях crontab вы должны экранировать символ%. Это твоя проблема:

http://www.ducea.com/2008/11/12/using-the-character-in-crontab-entries/

1
dmah

Перезапустите демон cron:

sudo /etc/init.d/crond restart 
это что-то настолько простое ... забавно, что когда кто-то просит меня о помощи в их компе, я первым делом перезагружаю его и забываю свой собственный совет ... :-) Patrick 13 лет назад 0
С каких это пор crond должен быть перезапущен после добавления нового cronjob? vtest 12 лет назад 2
0
Zekta Chan

Есть пары способов, которыми все может пойти не так.

  1. Вам не нужно '' для пароля.
  2. В работе cron всегда указывайте полный путь для mysqldump. Поскольку большая часть оболочки настроена на переменную PATH в переменной окружения, cron, вероятно, не сделает этого предположения, чтобы избежать перехвата исполняемого файла.

А за ошибки в работе cron они всегда отправляются по почте пользователю, которому он принадлежит. Проверьте вашу системную почту для получения дополнительной информации.

1. У меня есть специальный символ, который запускает мой пароль mysql, и mysql запрашивает ввод пароля вручную без '' 2. Я изменил `mysqldump` на` / usr / bin / mysqldump`, но не повезло, но все же не сделал run (3) У меня нет почты ни у администратора, ни у пользователя, на котором установлен этот cron Patrick 13 лет назад 0
0
Rich Homolka

В общем, я бы позаботился о том, чтобы ваш cronпочтовый ящик был настроен на вас.

Я бы добавил MAILTO=youremail@example.comстроку в ваш crontab, а затем тестовый cron, чтобы проверить вывод.

что-то вроде

* * * * * date 

и убедитесь, что вы получите вывод.

Также помните, что в cron ваш PATHминимальный, вероятно, просто / usr / bin: / bin. и нет LD_LIBRARY_PATH. Mysqldump находится в / bin или / usr / bin?

чтобы добавить вывод почты вы просто добавили пример mailto? ie- `* * * * * date MAILTO = mail @ me.com`? Я изменил `mysqldump` на` / usr / bin / mysqldump` Patrick 13 лет назад 0
Вы можете поместить MAILTO в начале файла в отдельной строке. dmah 13 лет назад 0