Создаём файл, в котором будет храниться скрипт и ставим права на исполнение
nano /root/backup_mysql.sh chmod +x /root/backup_mysql.sh
#!/bin/bash # каталог, куда будем сохранять backup_dir="/home/bitrix/_backup_mysql" # получаем список нужных баз в нужном формате databases=`mysql -N -B -e "show databases" | grep -v "information_schema"` cd $backup_dir for db_name in $databases; do echo Dumping $db_name mysqldump --lock-tables=FALSE --routines --single-transaction=TRUE --master-data $db_name | gzip > $db_name.gz # Если необходимо, меняем владельца файлов chown user:user $db_name.gz done
Не забываем:
#!/bin/bash # каталог, куда будем сохранять backup_dir="/dbbackup" # Поле авторизации. login и password, соответственно меняем на актуальные auth="-ulogin -ppassword" # получаем список нужных баз в нужном формате databases=`mysql -N -B $auth -e "show databases" | grep -v "information_schema"` cd $backup_dir for db_name in $databases; do echo Dumping $db_name mysqldump $auth --lock-tables=FALSE --routines --single-transaction=TRUE --master-data $db_name | gzip > $db_name.gz # Если необходимо, меняем владельца файлов chown user:user $db_name.gz done
Не забываем:
Редактируем расписание:
crontab -e
Ставим, к примеру, на 2 часа ночи:
0 2 * * * /bin/bash /root/backup_mysql.sh
В данной схеме всегда будет храниться только одна копия. Такая схема больше подходит для использования в паре с бэкапом файловом системы, чтобы последний заботился о количестве резервных копий.