程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> shell腳本備份mysql數據庫

shell腳本備份mysql數據庫

編輯:MySQL綜合教程

shell腳本備份mysql數據庫   需求 臨近年關整理一些腳本程序,發現一個mysql數據庫備份的腳本可以和大家分享一下,基於環境是ubuntu10.04server   www.2cto.com   思路 獲取mysql服務器所有數據庫名稱,過濾掉不需要備份的數據庫 通過mysqldump來for循環導出所有的數據庫的sql文件 用zip加密壓縮所有的sql文件 定期進行數據清理工作   shell代碼   數據庫導出代碼 [html]  #!/bin/bash      #1.數據庫信息定義    www.2cto.com   mysql_host="192.168.1.1"   mysql_user="root"   mysql_passwd="root"      #sql備份目錄   root_dir="/backup"   back_dir="/backup/databases"   data_dir="databases"   store_dir="database"   if [ ! -d $back_dir ]; then       mkdir -p $back_dir   fi      #備份的數據庫數組   db_arr=$(echo "show databases;" | mysql -u$mysql_user -p$mysql_passwd -h$mysql_host)   #不需要備份的單例數據庫   nodeldb="test1"      #當前日期   date=$(date -d '+0 days' +%Y%m%d)      #zip打包密碼   zippasswd="passwd"   zipname="lczh_"$date".zip"      #2.進入到備份目錄   cd $back_dir      #3.循環備份   for dbname in ${db_arr}   do       if [ $dbname != $nodeldb ]; then           sqlfile=$dbname-$date".sql"           mysqldump -u$mysql_user -p$mysql_passwd -h$mysql_host $dbname >$sqlfile       fi   done      #4.tar打包所有的sql文件   tar -zcPpf $root_dir/$store_dir/$zipname --directory /  $root_dir/$data_dir   #打包成功後刪除sql文件   if [ $? = 0 ]; then       rm -r $data_dir   fi     數據定期清理腳本   作用 定期清理14天前的備份文件   shell代碼 [html]  #!/bin/bash -       #1.參數配置      #mysql文件備份目錄   backup_dir1="/backup/test1/"   backup_dir2="/backup/test2/"   backdir_arr=($backup_dir1 $backup_dir2)      #過期文件的時間    www.2cto.com   keep_time=14      #當前所在星期,crontab在奇數的星期7執行   week=$(date +%W)   flag=`expr $week % 2`      #2.清理過期文件,只在奇數星期7執行   if [ $flag -eq 1 ]; then       for dir in ${backdir_arr[*]}       do           if [ -d $dir ]; then               #查找14天之外的文件數據               clean_arr=`find $dir -type f -mtime +$keep_time -exec ls {} \;`               for cleanfile in ${clean_arr}               do                   rm $cleanfile               done           fi       done   fi     crontab配置 [html]  0 5 * * 7  執行清理腳本     後記  www.2cto.com   大家有更好的數據庫備份方法或者是指點我shell腳本的不足,都可以跟帖留言,我保證回復,一起加油!  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved