我想知道每天使用特定前缀创建每个mysql数据库的备份的最佳方法是什么。
目前我为每个数据库设置了行的cron设置,每当我创建一个新数据库时,我都会手动添加这些行:
0 0 * * * root mysqldump -u backup -p 123456 website_website1 | gzip > /var/backups/websites/daily/website1_daily_`date +\%d-\%m-\%y`.sql.gz
我希望能够做的是使用一个脚本,该脚本使用网站前缀检查每个数据库并将其转储到自己的文件中。
我怎样才能做到这一点?
答案 0 :(得分:1)
您可以枚举所有数据库,并使用简单的shell脚本检查它们的前缀。有点像...
echo show databases | mysql -u backup -p 123456 | while read database; do
if [[ $database == my_prefix* ]]; then
mysqldump -u backup -p 123456 $database | gzip > /var/backups/websites/daily/${database}_`date +\%d-\%m-\%y`.sql.gz
fi
done
(未测试的)