class="21756">
關;鍵;字:shell;ftp;tar;mysql;;crontab
問;;;;題:我們公司有兩台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
jinjidong
[email protected]