1. #!/bin/bash 
  2.  
  3. PATH=.:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/java/jdk1.6.0_33/bin:/root/bin 
  4. export PATH 
  5. SOR=/tmp/server 
  6. DES=/data/serverall/server/ 
  7. DATE=`date +%Y-%m-%d` 
  8. RESTART=/data/serverall/server 
  9. SBAK=/data/serverbak 
  10. UBAK=/tmp/update-resourcesbak 
  11. RSYNC=`which rsync` 
  12. RSYNCPS=/root/secrets 
  13. UPDES=/tmp/update-server 
  14. UMTIME=`stat /tmp/update-server/ | grep Mod | awk -F' ' {'print $2'}` 
  15. RTIME=`date +%Y-%m-%d` 
  16. DETAIL=/tmp/update-detail 
  17. #backup UPDATE-OLD-FILE 
  18.  
  19. echo '------------------------backup update-old-file----------------------------------------' > $DETAIL 
  20. if [ ! -d $UBAK ]  
  21. then  
  22. mkdir -p $UBAK 
  23. fi 
  24.  
  25. cd $UBAK 
  26. tar -cjf $DATE.update-old-file.tar.bz2 $UPDES >/dev/null 2>&1 
  27. echo '----------------------------list backup tar.bz2 file----------------------------' >> $DETAIL 
  28. ls -lh >>$DETAIL 
  29. #update-server-file 
  30. echo '----------------------------need update server file detail-----------------------'>> $DETAIL 
  31. $RSYNC  -avzP --delete --password-file=$RSYNCPS  BackupUser@222.1.1.1::update-server $UPDES >>$DETAIL 
  32.  
  33.  
  34. #check file and update-gameserver 
  35.  
  36. if [[ $UMTIME == $RTIME ]] 
  37. then 
  38. echo " today is $DATE it\'s all ready to update server now" >>$DETAIL 
  39. else  
  40. exit  
  41. fi 
  42.  
  43.  
  44.  
  45. #backup server 
  46. if [ ! -d $SBAK  ];then mkdir -p $SBAK ;fi 
  47. cd $SBAK 
  48. tar -cjf $DATE.server.tar.bz2 --exclude=/data/serverall/server/logs --exclude=/data/serverall/server/loginfo --exclude=/data/serverall/server/*.txt  $DES  >/dev/null 2>&1 
  49.  
  50. #update 
  51.  
  52. \cp $SOR/* $DES -rf 
  53.  
  54.  
  55. chown root:root $DES -Rf 
  56. chmod 755 $DES -Rf 
  57.  
  58. #restart-server 
  59. cd $RESTART 
  60. if [ -f stop2.sh   ] 
  61. then 
  62.        sh stop2.sh 
  63.       sleep 300 
  64.       sh stop.sh 
  65.  
  66. fi 
  67. cd $RESTART 
  68. if [ -f start.sh ] 
  69. then 
  70.         sh start.sh 
  71.  
  72. fi 
  73. #print update file 
  74. echo '--------------------------update file list detail-----------------------------' >> $DETAIL 
  75. cd $SOR 
  76. find | sort > /tmp/SOR.lst 
  77. cd $DES 
  78. find | sort > /tmp/DES.lst 
  79. comm -1 -2 /tmp/SOR.lst /tmp/DES.lst >> $DETAIL 
  80.  
  81.  
  82. mail -s "update  report" "zhou.tao@huaqigame.com" < $DETAIL 

ip地址已经隐掉