問 題:我們公司有兩台LINUX服務器,每個服務器只有一個硬盤。所以備份的問題就顯得特別重要。我們裝有mysql數據庫。當然同時也要解決mysql備份的問題。
目 的:host 機器(最終所有備份都在其上留備份)ship機器(保存host機器備份)
方 法:通過shell腳本,打包相關要備份的文件。然後通過ftp操作下載,上載完成解決方案。
兩台機器root通過crontab讓腳本在各自機器定時。
建議host 每天早上3點
建議ship 每天早上6點
注意點:
兩台服務器系統時間最好相差不要超過1小時。
此腳本是每周禮拜6執行備份的。當然你也可以修改成每月或每天備份。
當然也可以修改成一個增量備份腳本。
具體腳本:
以下為host機器腳本
#//////////////host機器腳本///////////////
#! /bin/sh
HOST="abc.com"
USER="backup_use" #ship機器backup_use用戶
PASSWORD="backup_use" #ship機器對應用戶密碼
BACKUPDIR="/home/backup_use/ship" #host機器backup_use用戶目錄
BACKUPDIR2="/home/backup_use/host" #host機器backup_use用戶目錄
MYSQLPASS="abc" #ship 機器mysql root 用戶密碼
PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/nusphere/mysql/bin
DOW=`date +%a`
DM=`date +%Y%b%d`
FILE1=ship-virtual-$DM.tar.gz
FILE2=ship-mysqldata-$DM.tar.gz
FILE3=ship-szeasy-$DM.tar.gz
FILE4=ship-other-$DM.tar.gz
#
FIL1=$BACKUPDIR2/host-main-$DM.tar.gz
FIL2=$BACKUPDIR2/host-mysqldata-$DM.tar.gz
FIL3=$BACKUPDIR2/host-other-$DM.tar.gz
#
DIRECTORIE1="/www /home/jjd" # 要備份的目錄1
DIRECTORIE2="/etc /var/named /usr/local/nusphere/apache/conf" # 要備份的目錄2
#
if [ $DOW = "Sat" ]; then # 每個禮拜六完全備份
tar -zcpf $FIL1 $DIRECTORIE1
tar -zcpf $FIL3 $DIRECTORIE2
mysqldump --all-databases -q -uroot -p$MYSQLPASS |gzip > $FIL2
ftp -i -n < $BACKUPDIR/$COMPUTER-mysqldata-$DM.tar.gz
fi
########################################################################
Jp