Я выполняю резервное копирование своих баз данных с помощью automysqlbackup.
Это отлично работает, но, к сожалению, я не получаю ни одного файла для каждой базы данных, а только общий файл с именем
daily_all-databases_2016-04-15_12h01m_Friday.sql.gz
.
├── daily
│ └── daily_all-databases_2016-04-15_12h01m_Friday.sql.gz
├── latest
├── monthly
├── tmp
└── weekly
Я бы хотел получить единый архив для каждой базы данных.
Как я могу это сделать?
Вы должны уметь использовать SEPDIR
параметр конфигурации. Он создаст отдельные каталоги для каждой базы данных с собственным файлом внутри.
Из Справочная страница Ubuntu (но должен работать и на CentOS):
SEPDIR = да
Отдельный каталог резервных копий и файл для каждой БД? (да или нет)
В качестве альтернативы очень просто написать сценарий bash самостоятельно, который сделает это. Что-то вроде этого должно получиться:
mysql -u user -p pass -B -e "SHOW DATABASES"|sed 1d|while read db
do
mysqldump -u user -p pass $db|gzip>"/home/db_backup/$db.sql.gz"
if [[ $? != 0 ]];then
echo "Backup of database $db FAILED!"
fi
done
Очевидно заменить user
и pass
с их соответствующими значениями.