#!/bin/bash #你要修改的地方從這裡開始 MYSQL_USER= #mysql用戶名 MYSQL_PASS= #mysql密碼 MAIL_TO= #數據庫發送到的郵箱 FTP_USER= #ftp用戶名 FTP_PASS= #ftp密碼 FTP_IP= #ftp地址 FTP_backup= #ftp上存放備份文件的目錄,這個要自己得ftp上面建的 WEB_DATA= #要備份的網站數據 #DropBox Options LOGIN_EMAIL="" LOGIN_PASSWD="" DEST_FOLDER="/backup" #默認是Dropbox中的Backup目錄 #你要修改的地方從這裡結束 #定義數據庫的名字和舊數據庫的名字 DataBakName=Data_$(date +"%Y%m%d").tar.gz WebBakName=Web_$(date +%Y%m%d).tar.gz OldData=Data_$(date -d -5day +"%Y%m%d").tar.gz OldWeb=Web_$(date -d -5day +"%Y%m%d").tar.gz #刪除本地3天前的數據 rm -rf /home/backup/Data_$(date -d -3day +"%Y%m%d").tar.gz /home/backup/Web_$(date -d -3day +"%Y%m%d").tar.gz cd /home/backup #導出數據庫,一個數據庫一個壓縮文件 for db in `/usr/local/mysql/bin/mysql -u$MYSQL_USER -p$MYSQL_PASS -B -N -e 'SHOW DATABASES' | xargs`; do (/usr/local/mysql/bin/mysqldump -u$MYSQL_USER -p$MYSQL_PASS ${db} | gzip -9 - > ${db}.sql.gz) done #壓縮數據庫文件為一個文件 tar zcf /home/backup/$DataBakName /home/backup/*.sql.gz rm -rf /home/backup/*.sql.gz #發送數據庫到Email,如果數據庫壓縮後太大,請註釋這行 echo "主題:數據庫備份" | mutt -a /home/backup/$DataBakName -s "內容:數據庫備份" $MAIL_TO #壓縮網站數據 tar zcf /home/backup/$WebBakName $WEB_DATA ############################################################################################################################### #Set to 1 to enable DEBUG mode DEBUG=0 #Set to 1 to enable VERBOSE mode (-v option) VERBOSE=1 #If set to 1 the script terminate if an upload error occurs END_ON_UPLOAD_ERROR=0 #Set to 1 to skip the initial login page loading (Speed up the uploading process). #Set to 0 if you experience problems uploading the files. SKIP_LOADING_LOGIN_PAGE=1 #Don't edit these... LOGIN_URL="https://www.dropbox.com/login" HOME_URL="https://www.dropbox.com/home" UPLOAD_URL="https://dl-web.dropbox.com/upload" COOKIE_FILE="/tmp/du_cookie_$RANDOM" RESPONSE_FILE="/tmp/du_resp_$RANDOM" BIN_DEPS="curl sed grep tr pwd" VERSION="0.8.2" if [ $DEBUG -ne 0 ]; then set -x COOKIE_FILE="/tmp/du_cookie_debug" RESPONSE_FILE="/tmp/du_resp_debug" fi #Print verbose information depend on $VERBOSE variable function print { if [ $VERBOSE -eq 1 ]; then echo -ne "$1"; fi } #Remove temporary files function remove_temp_files { if [ $DEBUG -eq 0 ]; then rm -fr $COOKIE_FILE rm -fr $RESPONSE_FILE fi } #Extract token from the specified form # $1 = file path # $2 = form action function get_token { TOKEN=$(cat $1 | tr -d '\n' | sed 's/.*