You are here

РЕШЕНИЕ: mysqldump не хочет выполнятся из crontab, хотя в командой строке та же самая команда работает

Проблема: mysqldump не хочет выполнятся из crontab, хотя в командой строке та же самая команда работает.
А так же ситуация, когда написали скрипт, который отлично делает дамп mysql базы, отлично архивирует ваш сайт, но когда добавляем его в crontab, то он упорно не хочет делать дамп, в лучем случае создаёт нулевой или в десяток байт файл.

Причина: 
Crontab слухом не слыхивал про переменные окружений и он не в курсе, кто такой mysqldump и где он находится, потому и не работает. 

РЕШЕНИЕ: Делаем следующее

which mysqldump
получаем путь, например:
/usr/local/bin/mysqldump
теперь во всех скриптах или же в самом CRON пишем ПОЛНЫЙ путь.
Т.е. /usr/local/bin/mysqldump и бла-бла-бла с параметрами

Важно, у вас может быть другой путь, пользуйтесь командой which, чтобы узнать конкретный путь в вашей системе.

Если вы всё выше проделали, а не работает, так же проверьте, ТОТ ли cron вы редактируете, работают ли у вас другие вещи из него, самые элементраные типа echo "test" >> ~/test.log.
Так же возможно некоторые символы типа % могут потребовать экранирования. 

Ну и не забывайте, что вы можете обратиться за помощь в комментариях ниже. 

Add new comment

Редактор TinyMCE

  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <p> <br> <img> <hr> <blockquote> <iframe>
  • Web page addresses and e-mail addresses turn into links automatically.

Чистый текст

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.
CAPTCHA
This question is for testing whether or not you are a human visitor and to prevent automated spam submissions.
Image CAPTCHA
Enter the characters shown in the image.