Linux下的Web服务器备份恢复脚本,经测试CentOS和FreeBSD下都可以用只不过要修改脚本当中的变量TAR为系统的tar命令路径,脚本如下:
- #!/bin/sh
- cat << EOF
- +----------------------------------------------------------------+
- | === 服务器备份、恢复脚本 === |
- |------------------http://www.92csz.com-------------------|
- +-----------------------clairelume-----------------------------+
- EOF
- WEB_DIR=/data/www
- BACK_DIR=/data/www/webback
- TIME=`date +%Y%m%d`
- TAR="/usr/bin/tar"
- TAR_BACK="czf"
- TAR_RECOVERY="xvzf"
- COLOR_CYAN="\033[36;49;1m"
- COLOR_GREEN="\033[32;49;1m"
- COLOR_RED="\033[31;49;1m"
- COLOR_BACK="\033[39;49;0m"
- echo -e "$COLOR_CYAN备份环境信息:$COLOR_BACK"
- echo "+--------------------------------------------------------------+"
- echo -e "$COLOR_CYAN 1. 程序目录:$WEB_DIR$COLOR_BACK"
- echo -e "$COLOR_CYAN 2. 备份目录:$BACK_DIR$COLOR_BACK"
- echo -e "$COLOR_CYAN 3. 备份时间:$TIME$COLOR_BACK"
- echo -e "$COLOR_CYAN 4. 备份文件格式:web_back_`date +%Y%m%d`.tar.gz$COLOR_BACK"
- echo -e "$COLOR_RED 注:shell中的目录的参数,修改为您服务器的对应目录$COLOR_BACK"
- echo "+--------------------------------------------------------------+"
- if [ ! -d $BACK_DIR ];then
- mkdir -p $BACK_DIR
- fi
- while true;do
- echo -e "$COLOR_CYAN请您选择操作(1=备份,2=恢复,3|q|Q=退出,*=重新选择)[1,2,3]:$COLOR_BACK"
- read a
- case "$a" in
- 1)
- echo -e "$COLOR_CYAN当前服务器的站点程序:$COLOR_BACK"
- echo "+------------------------------------------------+"
- ls -l $WEB_DIR |grep '^d'|awk '{print $NF}'
- echo "+------------------------------------------------+"
- echo -e "$COLOR_CYAN选择需要备份的站点程序:$COLOR_BACK"
- read b
- if [ -d $WEB_DIR/$b ];then
- cd $WEB_DIR
- $TAR $TAR_BACK $BACK_DIR/"$b"_back_`date +%Y%m%d`.tar.gz $b/ > /dev/null 2>&1
- echo -e "$COLOR_GREEN$TIME $b备份成功!请继续选择其他操作$COLOR_BACK"
- echo "$TIME $b备份成功!$TIME" >> /var/log/web_back.log
- else
- echo -e "$COLOR_RED需要备份站点不存在,请重新输入:$COLOR_BACK"
- read d
- if [ -d $WEB_DIR/$d ];then
- cd $WEB_DIR
- $TAR $TAR_BACK $BACK_DIR/"$d"_back_`date +%Y%m%d`.tar.gz $d/ > /dev/null 2>&1
- echo -e "$COLOR_GREEN$TIME $d备份成功!请继续选择其他操作$COLOR_BACK"
- echo "$TIME $d备份成功!$TIME" >> /var/log/web_back.log
- else
- echo -e "$COLOR_RED备份站点名输入出错两次,退出当前备份选择!$COLOR_BACK"
- echo "$TIME 备份站点名输入出错两次,退出当前备份!" >> /var/log/web_back.log
- fi
- fi
- continue
- ;;
- 2)
- echo -e "$COLOR_CYAN当前服务器的备份文件:$COLOR_BACK"
- echo "+------------------------------------------------+"
- ls -l $BACK_DIR|grep "tar.gz"|awk '{print $NF}'
- echo "+------------------------------------------------+"
- echo -e "$COLOR_CYAN选择需要恢复的恢复文件:$COLOR_BACK"
- read c
- if [ -f $BACK_DIR/$c ];then
- cd $WEB_DIR
- $TAR $TAR_RECOVERY $BACK_DIR/$c -C $WEB_DIR/ > /dev/null 2>&1
- echo -e "$COLOR_GREEN$TIME $c恢复成功,请继续选择其他操作!$COLOR_BACK"
- echo "$TIME $c恢复成功!" >> /var/log/web_back.log
- else
- echo -e "$COLOR_RED需要恢复站点不存在,请重新输入:$COLOR_BACK"
- read f
- if [ -f $BACK_DIR/$f ];then
- cd $WEB_DIR
- $TAR $TAR_RECOVERY $BACK_DIR/$f -C $WEB_DIR/ > /dev/null 2>&1
- echo -e "$COLOR_GREEN$TIME $f恢复成功,请继续选择其他操作!$COLOR_BACK"
- echo "$TIME $f恢复成功!" >> /var/log/web_back.log
- else
- echo -e "$COLOR_RED恢复文件名输入出错两次,退出当前恢复选择!$COLOR_BACK"
- echo "$TIME 恢复文件名输入出错两次,退出当前恢复选择!" >> /var/log/web_back.log
- fi
- fi
- continue
- ;;
- 3|Q|q)
- echo -e "$COLOR_GREEN退出成功!$COLOR_BACK"
- exit
- ;;
- *)
- echo -e "$COLOR_RED输入错误,请重新输入!$COLOR_BACK"
- continue
- ;;
- esac
- exit 0
- done
注:shell中的目录的参数,修改为您服务器的对应目录
FreeBSD测试如下图:
CentOS 测试如下图:
如非注明则为本站原创文章,欢迎转载。转载请注明转载自:moon's blog
恭喜博主了,博客不错,速度也很快
呵呵,欢迎到访! 😛