双机(多机)自动互备份方案
2024-07-26 00:31:40
供稿:网友
 
关 键 字: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 
            j_p@163.net