![AutoMySQLBackup:为每个数据库创建一个单独的文件](https://linux22.com/image/680909/AutoMySQLBackup%EF%BC%9A%E4%B8%BA%E6%AF%8F%E4%B8%AA%E6%95%B0%E6%8D%AE%E5%BA%93%E5%88%9B%E5%BB%BA%E4%B8%80%E4%B8%AA%E5%8D%95%E7%8B%AC%E7%9A%84%E6%96%87%E4%BB%B6.png)
我正在使用以下方法备份数据库自动mysql备份。
这工作正常 - 但不幸的是,我没有为每个数据库获得一个单独的文件,而是获得了一个名为
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
我想为每个数据库获取一个单独的档案。
我怎样才能做到这一点?
答案1
您应该能够使用SEPDIR
config 参数。它将为每个数据库创建单独的目录,其中包含自己的文件。
来自Ubuntu 手册页(但在 CentOS 上应该同样有效):
SEPDIR=yes
为每个数据库单独备份目录和文件?(是或否)
另外,您也可以自己编写一个 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