现在的位置: 首页shell>正文
Linux下web服务器备份恢复脚本[原创]
2011年04月28日 shell 评论数 2 ⁄ 被围观 11,563 次+

Linux下的Web服务器备份恢复脚本,经测试CentOS和FreeBSD下都可以用只不过要修改脚本当中的变量TAR为系统的tar命令路径,脚本如下:

  1. #!/bin/sh   
  2. cat << EOF   
  3.     +----------------------------------------------------------------+   
  4.     |              === 服务器备份、恢复脚本 ===                  |   
  5.     |------------------http://www.92csz.com-------------------|   
  6.     +-----------------------clairelume-----------------------------+   
  7. EOF   
  8. WEB_DIR=/data/www   
  9. BACK_DIR=/data/www/webback   
  10. TIME=`date +%Y%m%d`   
  11. TAR="/usr/bin/tar"  
  12. TAR_BACK="czf"  
  13. TAR_RECOVERY="xvzf"  
  14. COLOR_CYAN="\033[36;49;1m"  
  15. COLOR_GREEN="\033[32;49;1m"  
  16. COLOR_RED="\033[31;49;1m"  
  17. COLOR_BACK="\033[39;49;0m"  
  18. echo -e "$COLOR_CYAN备份环境信息:$COLOR_BACK"  
  19. echo "+--------------------------------------------------------------+"  
  20. echo -e "$COLOR_CYAN 1. 程序目录:$WEB_DIR$COLOR_BACK"  
  21. echo -e "$COLOR_CYAN 2. 备份目录:$BACK_DIR$COLOR_BACK"  
  22. echo -e "$COLOR_CYAN 3. 备份时间:$TIME$COLOR_BACK"  
  23. echo -e "$COLOR_CYAN 4. 备份文件格式:web_back_`date +%Y%m%d`.tar.gz$COLOR_BACK"  
  24. echo -e "$COLOR_RED 注:shell中的目录的参数,修改为您服务器的对应目录$COLOR_BACK"  
  25. echo "+--------------------------------------------------------------+"  
  26. if [ ! -d $BACK_DIR ];then  
  27.     mkdir -p $BACK_DIR  
  28. fi   
  29. while true;do  
  30.     echo -e "$COLOR_CYAN请您选择操作(1=备份,2=恢复,3|q|Q=退出,*=重新选择)[1,2,3]:$COLOR_BACK"  
  31.     read a   
  32.     case "$a" in  
  33.         1)   
  34.             echo -e "$COLOR_CYAN当前服务器的站点程序:$COLOR_BACK"  
  35.             echo "+------------------------------------------------+"  
  36.             ls -l $WEB_DIR |grep '^d'|awk '{print $NF}'   
  37.             echo "+------------------------------------------------+"  
  38.             echo -e "$COLOR_CYAN选择需要备份的站点程序:$COLOR_BACK"  
  39.             read b   
  40.             if [ -d $WEB_DIR/$b ];then  
  41.                 cd $WEB_DIR  
  42.                 $TAR $TAR_BACK $BACK_DIR/"$b"_back_`date +%Y%m%d`.tar.gz $b/ > /dev/null 2>&1   
  43.                 echo -e "$COLOR_GREEN$TIME $b备份成功!请继续选择其他操作$COLOR_BACK"  
  44.                 echo "$TIME $b备份成功!$TIME" >> /var/log/web_back.log   
  45.             else    
  46.                 echo -e "$COLOR_RED需要备份站点不存在,请重新输入:$COLOR_BACK"  
  47.                 read d   
  48.                 if [ -d $WEB_DIR/$d ];then  
  49.                     cd $WEB_DIR  
  50.                     $TAR $TAR_BACK $BACK_DIR/"$d"_back_`date +%Y%m%d`.tar.gz $d/ > /dev/null 2>&1   
  51.                     echo -e "$COLOR_GREEN$TIME $d备份成功!请继续选择其他操作$COLOR_BACK"  
  52.                     echo "$TIME $d备份成功!$TIME" >> /var/log/web_back.log   
  53.                 else    
  54.                     echo -e "$COLOR_RED备份站点名输入出错两次,退出当前备份选择!$COLOR_BACK"  
  55.                     echo "$TIME 备份站点名输入出错两次,退出当前备份!" >> /var/log/web_back.log              
  56.                 fi   
  57.             fi   
  58.             continue   
  59.             ;;   
  60.         2)   
  61.             echo -e "$COLOR_CYAN当前服务器的备份文件:$COLOR_BACK"  
  62.             echo "+------------------------------------------------+"  
  63.             ls -l $BACK_DIR|grep "tar.gz"|awk '{print $NF}'   
  64.             echo "+------------------------------------------------+"  
  65.             echo -e "$COLOR_CYAN选择需要恢复的恢复文件:$COLOR_BACK"  
  66.             read c   
  67.             if [ -f $BACK_DIR/$c ];then  
  68.                 cd $WEB_DIR  
  69.                 $TAR $TAR_RECOVERY $BACK_DIR/$c -C $WEB_DIR/ > /dev/null 2>&1   
  70.                 echo -e "$COLOR_GREEN$TIME $c恢复成功,请继续选择其他操作!$COLOR_BACK"  
  71.                 echo "$TIME $c恢复成功!" >> /var/log/web_back.log   
  72.             else  
  73.                 echo -e "$COLOR_RED需要恢复站点不存在,请重新输入:$COLOR_BACK"  
  74.                 read f   
  75.                 if [ -f $BACK_DIR/$f ];then  
  76.                     cd $WEB_DIR  
  77.                     $TAR $TAR_RECOVERY $BACK_DIR/$f -C $WEB_DIR/ > /dev/null 2>&1   
  78.                     echo -e "$COLOR_GREEN$TIME $f恢复成功,请继续选择其他操作!$COLOR_BACK"  
  79.                     echo "$TIME $f恢复成功!" >> /var/log/web_back.log   
  80.                 else  
  81.                     echo -e "$COLOR_RED恢复文件名输入出错两次,退出当前恢复选择!$COLOR_BACK"  
  82.                     echo "$TIME 恢复文件名输入出错两次,退出当前恢复选择!" >> /var/log/web_back.log   
  83.                 fi   
  84.             fi   
  85.             continue   
  86.             ;;   
  87.         3|Q|q)   
  88.             echo -e "$COLOR_GREEN退出成功!$COLOR_BACK"  
  89.             exit   
  90.             ;;   
  91.         *)   
  92.             echo -e "$COLOR_RED输入错误,请重新输入!$COLOR_BACK"  
  93.             continue   
  94.             ;;   
  95.     esac   
  96.     exit 0   
  97. done  

注:shell中的目录的参数,修改为您服务器的对应目录

FreeBSD测试如下图:

FreeBSD下web服务器备份恢复测试截图

CentOS 测试如下图:

CentOS下Web服务器备份恢复脚本测试截图

本文地址:http://www.92csz.com/27/481.html
如非注明则为本站原创文章,欢迎转载。转载请注明转载自:moon's blog
 

目前有 2 条留言 其中:访客:1 条, 博主:1 条

  1. Error GO : 2011年04月28日17:20:28  -49楼

    恭喜博主了,博客不错,速度也很快

    • clairelume : 2011年04月28日17:42:08

      呵呵,欢迎到访! 😛