標籤:日誌 判斷 get desc plain 日記 l資料庫 name 開始
備份MySQL資料庫指令碼:
#!/bin/bash# description: MySQL buckup shell script# author: lmj# web site: http://www.cnblogs.com/dscode st=$(date +%s)USER="root" # 使用者名稱PASSWORD="root" # 密碼DATABASE="myblogdb" # 資料庫MAIL="[email protected]" # mail BACKUP_DIR=/home/lmj/data_backup/ # 備份檔案儲存路徑 LOGFILE=/home/lmj/data_backup/data_backup.log # 記錄檔路徑 DATE=`date +%Y%m%d-%H%M` # 用日期格式作為檔案名稱DUMPFILE=$DATE.sql ARCHIVE=$DATE.sql.tar.gz OPTIONS="-u$USER -p$PASSWORD $DATABASE"# 判斷備份檔案儲存目錄是否存在,否則建立該目錄 if [ ! -d $BACKUP_DIR ] then mkdir -p "$BACKUP_DIR"fi # 開始備份之前,將備份資訊頭寫入日記檔案 echo " ">> $LOGFILE echo "--------------------" >> $LOGFILE echo "BACKUP DATE:" $(date +"%y-%m-%d %H:%M:%S") >> $LOGFILE echo "-------------------" >> $LOGFILE # 切換至備份目錄 cd $BACKUP_DIR mysqldump $OPTIONS > $DUMPFILE
# 判斷Database Backup是否成功 if [[ $? == 0 ]]then tar czvf $ARCHIVE $DUMPFILE >> $LOGFILE 2>&1 echo "[$ARCHIVE] Backup Successful!" >> $LOGFILE rm -f $DUMPFILE # 刪除原始備份檔案,只需保留備份壓縮包 # 把壓縮包檔案備份到其他機器上。 scp -P 110 $BACKUP_DIR$ARCHIVE [email protected]*.*.*.*:/home/user/data_backup/ >> $LOGFILE 2>&1 else echo "Database Backup Fail!" >> $LOGFILE # 備份失敗後向管理者發送寄件提醒 mail -s "database:$DATABASE Daily Backup Fail!" $MAIL fi echo "Backup Process Done"
# 刪除3天以上的備份檔案# Cleaningfind $BACKUP_DIR -type f -mtime +2 -name "*.tar.gz" -exec rm -f {} \;
備份MySQL資料庫