使用Shell實現mysql分庫備份
阿新 • • 發佈:2019-01-24
大家好,今天給大家帶來的是一個分庫備份指令碼
下面是準備好的4個數據庫 aa bb cc dd
執行效果如下
恢復一下看看
shell指令碼如下:
#!/bin/bash myuser=root mypasswd=123456 mycmd="mysqldump -u$myuser -p$mypasswd" for dname in `mysql -uroot -p123456 -e "show databases;"| sed 1d | egrep -v "schema|test|mysql"` do $mycmd --databases $dname >/opt/${dname}_`date +%F`.sql done
解析如下:
#!/bin/bash myuser=root #定義資料庫使用者 mypasswd=123456 #定義資料庫密碼 mycmd="mysqldump -u$myuser -p$mypasswd" #備份資料庫的命令,這裡呼叫了上面的使用者密碼。 #然後使用正則取出每個資料庫的名字然後使用for迴圈分別備份,不知道怎麼取的可以繼續往下看 for dname in `mysql -uroot -p123456 -e "show databases;"| sed 1d | egrep -v "schema|test|mysql"` do $mycmd --databases $dname >/opt/${dname}_`date +%F`.sql #這裡呼叫上面取出的資料庫名字和備份命令,備份到指定位置並以時間命名 done
這個指令碼的重點是在於取資料庫的名字
`mysql -uroot -p123456 -e "show databases;"| sed 1d | egrep -v "schema|test|mysql"`