如何使用bash脚本备份mysql数据库
时间:2020-03-05 15:24:44 来源:igfitidea点击:
常规备份MySQL数据库也像备份代码一样重要。
所以我写了这个脚本来备份本地磁盘上的所有数据库。
然后,我添加了gzip来压缩SQL文件以保存磁盘空间。
我们可以随时将它们复制到网络上,以便保留数据库的多个副本。
请替换脚本中提到的"mysqlpassword",使用MySQL root密码。
此shell脚本将在"/usr/local"中创建名为"dblist"的文件,该文件将列出MySQL Server中的所有数据库。
DB的备份在"/backup/mysqlbackup"目录中,其中目录名称为日期。
可以由用户修改"dblist"和备份目标的路径。
mysql备份脚本
以下显示了一个简单的mysql备份脚本:
#!/bin/bash
### Create Directory with Date where Database backup will be stored. ####
month=$(date | awk '{print }')
day=$(date | awk '{print }' )
year=$(date | awk '{print }')
foldername=$(echo $day$month$year"_backups")
### List all the databases in /usr/local/dblist file. ####
mysql -u root -p'mysqlpassword' -e 'show databases' >/usr/local/dblist
list=$(cat /usr/local/dblist)
echo $foldername
### Create Backup Directory in /Backup/mysqlbackup … ####
mkdir -p /Backup/mysqlbackup/$foldername
for i in $list
do
echo $i
mysqldump -u root -p'mysqlpassword' $i | gzip > /Backup/mysqlbackup/$foldername/$i.sql.gz
echo " "$i".sql.gz file saved.."
done
我们可以将此shell脚本放在crontab中并每天运行。
通过这种方式,我们将拥有所有数据库的每日备份。
示例输出
./mysql.sh 17Sep2013_backups database1 database1.sql.gz file saved... hello_db hello_db.sql.gz file saved... site2 site2.sql.gz file saved... test test.sql.gz file saved...

