Автоматическое резервное копирование в Ubuntu для базы данных MySQL - PullRequest
1 голос
/ 12 марта 2019

В настоящее время я использую Ubuntu 16.04 LTS.В моем /etc/crontab я добавил скрипт для резервного копирования базы данных mysql.

# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user  command
 17 *  *   *   *  root  cd / && run-parts --report /etc/cron.hourly
 25 6  *   *   *  root  test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
 47 6  *   *   7  root  test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
 52 6  1   *   *  root  test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )

# this is my custom script for database backup daily
15 2   *   *   *  root  /opt/lampp/bin/mysqldump -u root database_name > /home/backup_$(date +%Y%m%d).sql 
#

Он отлично работал, когда я запускал его из терминала.Он должен делать резервную копию моей базы данных каждый день в 2: 15 AM , но он ничего не делает из crontab.

1 Ответ

0 голосов
/ 12 марта 2019

У меня была эта проблема, и она обычно связана с переменными окружения cron. Поскольку cron не является пользователем оболочки, он имеет переменные окружения, отличные от пользователей консоли. Вы можете сравнить, запустив что-то подобное с cron и вашим пользователем, который работает:

usr/bin/env | sort > /tmp/cronEnv.out

Это позволит вам сравнить оба выхода. Если я готов поспорить, это должно быть что-то вроде часовых поясов, языка или двоичных файлов, которые он не может найти из-за отличия PATH. Пожалуйста, разместите журнал cron здесь также на всякий случай. в зависимости от дристро их можно найти здесь:

/var/log/cron //could also be syslog or something else.

Здесь есть статья об этом .

Не имеет отношения к вашему вопросу напрямую: я также запрограммировал скрипт резервного копирования для Mysql и других вещей, все еще в стадии разработки, но может работать для вашей среды, только около 50 или 60 серверов, использующих его до сих пор, но вы можете попробовать и пинговать меня, если понадобится помощь.

Помимо этого могут быть и другие проблемы, но если скрипт работает, то env по какой-то причине должен отличаться.

...