Назад | Перейти на главную страницу

Cronjob для резервного копирования базы данных каждый день в 22:00

Мне удалось настроить cronjob:

* 13 * * * date=`date +\%d-\%m-\%Y-\%s`; mysqldump -u root -pPassword1 db121 > /home/backup/xbackup_$date.sql; gzip /home/backup/xbackup_$date.sql

Я надеюсь, что это займет mysqldump каждый день в 22:00, а затем сохраняйте в каталог / home / backup. Однако у меня это не сработало.

Правильно ли указанная выше запись в crontab? Если да, то почему бы ему не сделать резервную копию, поскольку команда работает нормально, когда я выполняю ее сам.

Спасибо всем за любую помощь

Обновить

Я читал centos руководство по работе cron и он говорит:

Пользователи кроме корень может настраивать задачи cron с помощью утилиты crontab.

Серли, это неправда?

Из crontab(5) страница руководства:

   The "sixth" field (the rest of the line) specifies the  command  to  be
   run.   The  entire  command  portion  of the line, up to a newline or %
   character, will be executed by /bin/sh or by the shell specified in the
   SHELL  variable  of  the  cronfile.   Percent-signs (%) in the command,
   unless escaped with backslash (\), will be changed into newline charac-
   ters,  and  all  data  after the first % will be sent to the command as
   standard input.

Я бы сделал это

date='date +\%d-\%m-\%Y-\%s'

0 22 * * * mysqldump -u root -pPassword1 db121 > /home/backup/xbackup_`$date`.sql; gzip /home/backup/xbackup_`$date`.sql

Скорее всего команд нет в вашем $PATH, укажите в crontab или укажите полные пути к команде, например /usr/bin/mysqldump