天天看點

備份資料庫腳本備份資料庫腳本

備份資料庫腳本

#!/bin/sh
DBPATH=/server/backup
MYUSER=root
MYPASS=oldboy123
MYCMD="mysql -u$MYUSER -p$MYPASS"
MYDUMP="mysqldump -u$MYUSER -p$MYPASS"
[ ! -d $DBPATH ] && mkdir $DBPATH
for dbname in `$MYCMD -e "show databases;"|sed '1,2d'|egrep -v "mysql|schema"`
do
  $MYDUMP $dbname|gzip >$DBPATH/${dbname}_$(date +%F).sql.gz
done
           

原理是使用了 mysqldump 工具把資料庫資料dump下來, 然後使用 gzip 工具壓縮.

如果資料量特别大(體積以g計算)就不太建議使用這個工具, 因為 mysqldump 有鎖表問題, 這裡就不讨論了.

參考資料

  • 第11章代碼《跟老男孩學習Linux運維:Shell進階程式設計實戰》
  • gzip Advanced-usage
  • mysqldump的鎖表的問題

繼續閱讀