自動備份mysql數據庫 shell腳本

jopen 12年前發布 | 20K 次閱讀 MySQL 數據庫服務器

最近使用了testlink和mantis這2個測試相關的系統,而他們又全部是基于mysql+php開發的,因此定期備份數據庫也是很有必要的,下面是自己寫的一個簡單的shell腳本。我的mysql是通過xampp這個套件安裝的,因為這個套件可以一起安裝testlink和mantis 需要的php+apache環境。

#!/bin/bash
#this script will backup the mysql databases and source code automatically.
#Date: 2013-11-21
#Author: Cullen

#variable list
DbTestCase=testlink #testlink的數據庫名稱
DbBug=bugtracker   #mantis在mysql里的數據庫名稱
DbUser=root
DbPwd=admin
BackupPath=/root/mysql_backup/
LogFile=/root/mysql_backup/log_file

#check the backup file exists or not
if [ ! -d $BackupPath ]; then
    mkdir $BackupPath
fi

for DbName in $DbTestCase $DbBug 
do
    NewFile="$BackupPath""$DbName"$(date +%y%m%d).tar.gz
    DumpFile="$BackupPath""$DbName"$(date ++%y%m%d).sql
    OldFile="$BackupPath""$DbName"$(date +%y%m%d --date='1 weeks ago').tar.gz

    echo "-----------------------------------------"
    echo $(date +"%y-%m-%d %H:%M:%S")
    echo "-----------------------------------------"

    #create new backup file weekly
    if [ -f $NewFile ]; then
        echo "New backup file have exists!"
    else
        /opt/lampp/bin/mysqldump -uroot -padmin $DbName > $DumpFile
        tar czvf $NewFile $DumpFile
        rm -rf $DumpFile
        echo "[$NewFile] backup completely!" >> $LogFile
    fi

    #remove the obsolete file
    if [ -f $OldFile ]; then
        rm -f $OldFile
        echo "delete the old file: [$OldFile]"
    fi 
done
可以將這個腳本加入到cron例行程序里,就可以自動備份數據庫了。

來自:http://blog.csdn.net/wangyiyan315/article/details/16944479

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!