发信人: zhcharles(小传) 
整理人: zhcharles(2002-01-30 15:53:44), 站内信件
 | 
 
 
                       双机(多机)自动互备份方案: 
 关键字:shell ftp tar mysql  crontab 
 问    题:我们公司有两台LINUX服务器,每个服务器只有一个硬盘。所以 
                  备份的问题就显得特别重要。我们装有mysql数据库。当然同时也要解 
                  决mysql备份的问题。 
 目   的:host 机器(最终所有备份都在其上留备份) 
               ship机器(保存host机器备份) 
 方   法:通过shell脚本,打包相关要备份的文件。然后通过ftp操作下载, 
               上载完成解决方案。 
       两台机器root 通过crontab 让脚本在各自机器定时。 
       建议host 每天早上3点 
       建议ship 每天早上6点 
 注意点: 
       两台服务器系统时间最好相差不要超过1小时。 
       此脚本是每周礼拜6执行备份的。当然你也可以修改成每月或每天备份。 
       当然也可以修改成一个增量备份脚本。 
 其他: 
               任何问题沟通请联系[email protected] 欢迎交流 
     
 具体脚本: 
 以下为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 <<HERE 
 open $HOST 
 user $USER $PASSWORD 
 get $FILE1 $BACKUPDIR/$FILE1 
 get $FILE2 $BACKUPDIR/$FILE2 
 get $FILE3 $BACKUPDIR/$FILE3 
 get $FILE4 $BACKUPDIR/$FILE4 
 cd host 
 put $FIL1 host-main-$DM.tar.gz 
 put $FIL2 host-mysqldata-$DM.tar.gz 
 put $FIL3 host-other-$DM.tar.gz 
 cd .. 
 del $FILE1 
 del $FILE2 
 del $FILE3 
 del $FILE4 
 close 
 quit 
 HERE 
 # rm -rf $FIL1 
 # rm -rf $FIL2 
 # rm -rf $FIL3 
 fi 
 
 以下为host机器脚本 
 #//////////////////////////////////////////////////////ship机器脚本////////////////////////////////////////////////////////////////////// 
 #!/bin/sh 
 
 COMPUTER="ship" # 计算机名称 
 DIRECTORIE1="/home/virtual_host" # 要备份的目录 
 DIRECTORIE2="/www/htdocs/shenzhen" 
 DIRECTORIE3="/etc /var/named /usr/local/nusphere/apache/conf" 
 BACKUPDIR="/home/backup_use" # 储存备份的目录 
 MYSQLPASS="ship" #ship 机器mysql root 用户密码 
 
 
 #You should not have to change anything below here 
 
 PATH=/usr/local/bin:/usr/bin:/bin 
 DOW=`date +%a` # Day of the week e.g. Mon 
 DM=`date +%Y%b%d` # Date and Month e.g. 27Sep 
 
 if [ $DOW = "Sat" ]; then # 每个礼拜天完全备份 
 tar -zcpf $BACKUPDIR/$COMPUTER-virtual-$DM.tar.gz $DIRECTORIE1 
 tar -zcpf $BACKUPDIR/$COMPUTER-szeasy-$DM.tar.gz $DIRECTORIE2 
 tar -zcpf $BACKUPDIR/$COMPUTER-other-$DM.tar.gz $DIRECTORIE3 
 mysqldump --all-databases -q -uroot -p$MYSQLPASS |gzip > $BACKUPDIR/$COMPUTER-mysqldata-$DM.tar.gz 
 fi  
  
  
 
  ----  
 A:哦,这是您新版的女朋友吗?
 B:是呀!
 A:在哪下载的?
 B:就在“美女.com” 罗!
 A:快不快?
 B:用宽频的话,也要等一个多小时!
 A:我怎么下载不了?
 B:美女不是这样下载的!
 A:难道要腰马合一?
 B:对!
 A:哦,听讲这网站要收费的!
 B:是呀!现在网络泡沫爆破,个个都说“天下没有白吃的午餐”。
 A:也是呀!您用完借给我可以吗?
 B:这可是盗版呀!
 A:没问题啦!现在到处是盗版啦!这不是 OEM 别个网站的吧?
 B:应该不是吧!其实我也不太清楚!
 A:哦,那好吧。用完记得借给我!!!
 B:好的。
  
 --
  
 情越真,妒越深。夜半哀音,传奇一生!
  
 小传 ( Charles Feng ) [email protected]   OICQ:17866295         
      
  
  
         | 
 
 
 |