免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1477 | 回复: 4
打印 上一主题 下一主题

写了个手工备份指定目录得脚本,希望对大家有用 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-07-19 13:32 |只看该作者 |倒序浏览
公司开发人员不断对现有线上系统做升级,升级前需要备份原有得应用程序,所以他们做更新都得我陪着(因为备份需要我来做),刚写了手工备份得脚本,这样开发人员自己就可以做备份了,呵呵,我解脱了。

不过大家在用得时候需要做一些修改。








#!/bin/sh

##########**********Define Envionment Variables**********##########

SCRIPTDIR="/home/iwgroup/backup/script"
BACKUPDIR="/home/iwgroup/backup/databak"
VASOSS="/opt/iwgroup/"
VASOSSLIB="/opt/iwgroup/testdir"
VASOSSCONF="/opt/iwgroup/dirtest"

##########**********define date Format**********###########
TODAYDATE="`date "+%Y%m%d%H"`"
TODAYDATEFULL="`date "+%Y-%m-%d_%H:%M:%S"`"



##########**********Print The Select Menu**********##########
echo

cat $SCRIPTDIR/word.txt | awk 'NR==1'

echo
echo -e "\t1: backup /opt/iwgroup/"
echo -e "\t2: backup /opt/iwgroup/testdir/"
echo -e "\t3: backup /opt/iwgroup/dirtest"
echo
echo -e "lease select one from 1 to 3,or input the path: \c"
read  dirpath
case "$dirpath" in
   1)
        echo -e "now start backup directory $VASOSS,be sure of this diretory is you need backup[Y/y] or [N/n])\c"
        read YORN
        if [ "$YORN" = "Y" -o "$YORN" = "y" ]
        then
                echo "execute backup program ..."
                cd $VASOSS
                tar cvf Vasossone_vasoss_backup_$TODAYDATE.tar ./* > /dev/null 2>&1
                gzip Vasossone_vasoss_backup_$TODAYDATE.tar
                mv Vasossone_vasoss_backup_$TODAYDATE.tar.gz $BACKUPDIR
                echo "already backup $VASOSS directory to $BACKUPDIR directory,backup file name is Vasossone_vasoss_backup_$TODAYDATE.tar.gz"
                echo "at the $TODAYDATEFULL,you backup $VASOSS directory to $BACKUPDIR directory,backup file name is Vasossone_vasoss_backup_$TODAYDATE.tar.gz" >> $SCRIPTDIR/manual.log
        else
                echo "please you select again"
                echo "at the $TODAYDATEFULL,you ever select 1,but you canceled this operate" >> $SCRIPTDIR/manual.log
        fi   
        ;;
   2)  
        echo -e "now start backup directory $VASOSSLIB,be sure of this diretory is you need backup[Y/y] or [N/n])\c"
        read YORN
        if [ "$YORN" = "Y" -o "$YORN" = "y" ]
        then
                echo "execute backup program ..."
                cd $VASOSSLIB
                tar cvf Vasossone_vasoss_lib_backup_$TODAYDATE.tar ./* > /dev/null 2>&1
                gzip Vasossone_vasoss_lib_backup_$TODAYDATE.tar
                mv Vasossone_vasoss_lib_backup_$TODAYDATE.tar.gz $BACKUPDIR
                echo "already backup $VASOSSLIB directory to $BACKUPDIR directory,backup file name is Vasossone_vasoss_lib_backup_$TODAYDATE.tar.gz"
                echo "at the $TODAYDATEFULL,you backup $VASOSSLIB directory to $BACKUPDIR directory,backup file name is Vasossone_vasoss_lib_backup_$TODAYDATE.tar.gz" >> $SCRIPTDIR/manual.log
        else
                echo "please you select again"
                echo "at the $TODAYDATEFULL,you ever select 2,but you canceled this operate" >> $SCRIPTDIR/manual.log
        fi
        ;;
   3)
        echo -e "now start backup directory $VASOSSCONF,be sure of this diretory is you need backup[Y/y] or [N/n])\c"
        read YORN
        if [ "$YORN" = "Y" -o "$YORN" = "y" ]
        then
                echo "execute backup program ..."
                cd $VASOSSCONF
                tar cvf Vasossone_vasoss_conf_backup_$TODAYDATE.tar ./* > /dev/null 2>&1
                gzip Vasossone_vasoss_conf_backup_$TODAYDATE.tar
                mv Vasossone_vasoss_conf_backup_$TODAYDATE.tar.gz $BACKUPDIR
                echo "already backup $VASOSSCONF directory to $BACKUPDIR directory,backup file name is Vasossone_vasoss_conf_backup_$TODAYDATE.tar.gz"
                echo "at the $TODAYDATEFULL,you backup $VASOSSCONF directory to $BACKUPDIR directory,backup file name is Vasossone_vasoss_conf_backup_$TODAYDATE.tar.gz" >> $SCRIPTDIR/manual.log
        else
                echo "please you select again"
                echo "at the $TODAYDATEFULL,you ever select 3,but you canceled this operate" >> $SCRIPTDIR/manual.log
        fi
        ;;
   *)
        echo -e "You not select number,but you input a path,please you be sure of this diretory exist[Y/y] or [N/n])\c"
        read YORN
        echo -e "input the name of backup file,default Vasossone_other_backup_$TODAYDATE.tar,recommend use default:\c"
        read bakname
        if [ "$YORN" = "Y" -o "$YORN" = "y" ]
        then
                if [ -d $dirpath ]
                then
                        if [ ! -z $bakname ]
                        then
                                echo "execute backup program ..."
                                cd $dirpath
                                tar cvf $bakname ./* > /dev/null 2>&1
                                gzip $bakname >> $SCRIPTDIR/manual.log 2>&1
                                mv $bakname.gz $BACKUPDIR
                                echo "already backup $dirpath directory to $BACKUPDIR directory,backup file name is $bakname.gz"
                                echo "at the $TODAYDATEFULL,you backup $dirpath directory to $BACKUPDIR directory,backup file name is $bakname.gz" >> $SCRIPTDIR/manual.log
                        else
                                echo "execute backup program ..."
                                cd $dirpath
                                tar cvf Vasossone_other_backup_$TODAYDATE.tar ./* > /dev/null 2>&1
                                gzip Vasossone_other_backup_$TODAYDATE.tar >> $SCRIPTDIR/manual.log 2>&1
                                mv Vasossone_other_backup_$TODAYDATE.tar.gz $BACKUPDIR
                                echo "already backup $dirpath directory to $BACKUPDIR directory,backup file name is Vasossone_other_backup_$TODAYDATE.tar.gz"
                                echo "at the $TODAYDATEFULL,you backup $dirpath directory to $BACKUPDIR directory,backup file name is Vasossone_other_backup_$TODAYDATE.tar.gz" >> $SCRIPTDIR/manual.log
                        fi
                else
                        echo "you input path not exist,please check and input again"
                        echo "at the $TODAYDATEFULL,you input the path of you need backup,but this directory is not exist" >> $SCRIPTDIR/manual.log
                fi
        else
                echo "please you select again"
                echo "at the $TODAYDATEFULL,you input the path of you need backup,but this operate be canceled by you" >> $SCRIPTDIR/manual.log
        fi
        ;;
esac


word.txt 文件得内容是:
您好,您所执行的这个程序是手工备份应用程序的SHELL脚本,请选择您要备份的目录,如果下列选项中没有您希望备份的目录,请手工输入:
您输入的路径不正确,请查证后再次输入

[ 本帖最后由 zdm 于 2006-7-24 16:32 编辑 ]

评分

参与人数 1可用积分 +2 收起 理由
waker + 2

查看全部评分

论坛徽章:
0
2 [报告]
发表于 2006-07-19 14:39 |只看该作者
收藏,在研究中

论坛徽章:
0
3 [报告]
发表于 2006-07-19 17:02 |只看该作者
简单的语句写出麻烦的程序的人是厉害的人 麻烦的语句写出简单的程序的人是包子的人
麻烦语句写麻烦程序的人是更厉害的人   简单语句写出简单程序的人是跟我一样笨的人  

论坛徽章:
0
4 [报告]
发表于 2006-07-26 16:40 |只看该作者

回复 3楼 nike90360 的帖子

我操,楼上太他妈精辟了。

论坛徽章:
3
辰龙
日期:2013-11-20 23:03:57子鼠
日期:2014-05-26 14:46:482015年亚洲杯之伊拉克
日期:2015-01-30 14:29:38
5 [报告]
发表于 2006-07-26 17:13 |只看该作者
看着头痛,慢慢研究
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP