close

這是一個shell script檔,並可做到異地備份,寫成兩個function
每日備份及遠端机器備份


copy後,存成例如 bkup.sh 檔
chmod +x bkup.sh 即可享用
function RESTORE_REMOTE 是可以做到異地備份,例如 a机器備份到b机器的mysql 上,前提是b上的mysql要開放存取權限給a机器及user

#!/usr/local/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin
export PATH
#MySQL在sfs3 的權限使用者及密碼
USER=xxxxxxx ;
PASSWORD=xxxxxxxxx;
DB_NAME=xxxxxx;
CHARSET=’–default-character-set=latin1′;
#遠端備份机器
REMOTE_HOST=xxx.xxx.xxx.xxx;
#今天的日期跟昨天的日期
TODAY=`date +%Y-%m-%d`;
YESTERDAY=`date -v-1d +%Y-%m-%d`;
FILE_END=sfs3.sql;
#執行每天備份
function DAILY_BACKUP(){
cd ~/DB/
#如果今天已備份過,先刪除產生的備份檔
if [ -e $TODAY.$FILE_END ]; then
rm -rf $TODAY.$FILE_END
fi
mysqldump -u$USER -p$PASSWORD $CHARSET $DB_NAME > $TODAY.$FILE_END
}
#執行檔案即時檔案回復至備援机
function RESTORE_REMOTE(){
cd ~/DB/
mysql -h$REMOTE_HOST -u$USER -p$PASSWORD $CHARSET -D$DB_NAME < $TODAY.$FILE_END
}
#回復延遲一天的檔案
function DELAY_RESTORE(){
cd ~/DB/
if [ -e $YESTERDAY.$FILE_END ]; then
$YESTERDAY.$FILE_END does exist.
mysql -h$REMOTE_HOST -u$USER -p$PASSWORD $CHARSET -D$DB_NAME < $YESTERDAY.$FILE_END
else
echo “殘念”;
fi
}
DAILY_BACKUP;

#若想要打開異地備份功能,則把下列#號去除即可
#RESTORE_REMOTE;
# DELAY_RESTORE;

arrow
arrow
    全站熱搜

    igogo 發表在 痞客邦 留言(0) 人氣()