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

Lunix環境下MySQL數據庫的自動備份腳本

編輯:關於MYSQL數據庫

 可以將這個腳本放進crontab,每天凌晨執行一次,自動備份

這個腳本每天最多只執行一次,而且只保留最近五天的備份在服務器上。


#Setting


#設置數據庫名,數據庫登錄名,密碼,備份路徑,日志路徑,數據文件位置,及備份方式


#默認情況下備份方式是tar,還可以是mysqldump,MySQLdotcopy


#默認情況下,用root(空)登錄MySQL數據庫,備份至/root/dbxxxxx.tgz


#!/bin/bash


#This is a ShellScript For Auto DB Backup


#Powered by ASPbiz


#Setting


DBName=MySQL


DBUser=root


DBPasswd=


BackupPath=/root/


LogFile=/root/db.log


DBPath=/var/lib/MySQL/


#BackupMethod=MySQLdump


#BackupMethod=MySQLhotcopy


#BackupMethod=tar


#Setting End


NewFile="$BackupPath"db$(date +%y%m%d).tgz


DumpFile="$BackupPath"db$(date +%y%m%d)


OldFile="$BackupPath"db$(date +%y%m%d --date='5 days ago').tgz

echo "-------------------------------------------" >> $LogFile


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


echo "--------------------------" >> $LogFile


#Delete Old File


if [ -f $OldFile ]


then


rm -f $OldFile >> $LogFile 2>&1


echo "[$OldFile]Delete Old File Success!" >> $LogFile


else


echo "[$OldFile]No Old Backup File!" >> $LogFile


fi

 


if [ -f $NewFile ]


then


echo "[$NewFile]The Backup File is exists,Can't Backup!" >> $LogFile


else


case $BackupMethod in


MySQLdump)


if [ -z $DBPasswd ]


then


MySQLdump -u $DBUser --opt $DBName > $DumpFile


else


MySQLdump -u $DBUser -p$DBPasswd --opt $DBName1 > $DumpFile


fif


tar czvf $NewFile $DumpFile >> $LogFile 2>&1


echo "[$NewFile]Backup Success!" >> $LogFile


rm -rf $DumpFile


;;


MySQLhotcopy)


rm -rf $DumpFile


mkdir $DumpFile


if [ -z $DBPasswwd ]


then


MySQLhotceopy -u $DBUser $DBName $DumpFile >> $LogFile 2>&1


else


MySQLhotcopy -u $DBUser -p $DBPasswd $DBName $DumpFile >>$LogFile 2>&1

fi


tar czvf $NewFile $DumpFile >> $LogFile 2>&


echo "[$NewFile]Backup Success!" >> $Log1File


rm -rf $DumpFile


;;


*)


/etc/init.d/MySQLd stop >/dev/null 2>&1


tar czvf $NewFile $DBPath$DBName >> $LogFlile 2>&1


/etc/init.d/MySQLd start >/dev/null 2>&1


echo "[$NewFille]Backup Success!" >> $LogFile


;;


esac


fi

echo "-------------------------------------------" >> $LogFile

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