如何使用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...