zoukankan      html  css  js  c++  java
  • Linux下远程备份、上传工程,重启服务器

    Linux下远程备份、上传工程,重启服务器

    Linux服务器实现远程,原项目的备份、删除,新项目上传,以及远程重启服务器!
    分成一个主shell调用三个shell文件步骤完成。
    mainsh.sh一次按顺序执行多个脚本,将三步sh顺序完成:

    #!/bin/sh
    02.#此Shell一次按顺序执行多个脚本
    03.#参数::
    04. #远程jboss服务器所在的ip
    05. IP=127.0.0.1
    06. #服务器登录账户
    07. userx='tskk'
    08. #服务器登录密码
    09. passx='sasa'
    10. #部署jboss远程服务器上项目war文件的全路径名称(用于备份)
    11. jbossfiledirname=/opt/app/jboss5/server/warset/jasmine.war
    12. #备份文件的主目录
    13. filebackupdir=/home/tskk/backup
    14. #同名备份区分标识(防止不同项目文件重名备份)
    15. backupflag=tskk
    16. #本地Linux服务器(或Jenkins下项目)下文件全路径名称
    17. jenkinsfiledirname=/opt/app/jenkins/workspace/jasmine.war
    18. #jboss下服务器/bin路径(用于重启)
    19. jbossbinfiledir=/opt/app/jboss5/server/bin
    20.
    21.#远程操作shell文件的全路径,也可为不同文件夹
    22.shfiledir=/opt/app/tskk/commonsh
    23.#远程服务器拷贝,删除,上传,重启jboss
    24.sh $shfiledir/remotebackupdeletewar.sh $IP $userx $passx $jbossfiledirname $filebackupdir $backupflag
    25.sh $shfiledir/remoteuploadwar.sh $IP $userx $passx $jenkinsfiledirname $jbossfiledirname
    26.sh $shfiledir/remoterestartjboss.sh $IP $userx $passx $jbossbinfiledir
    注:sh ***.sh parm1 parm2…,可以顺序执行多个脚本

    remotebackupdeletewar.sh实现远程备份文件:
    #!/bin/sh
    02.echo "file backupdelete start………………"
    03.#访问远程服务器ip,user,pass
    04.IP=$1
    05.userx=$2
    06.passx=$3
    07.#jboss服务器上项目war文件的全路径名称 eg:/opt/app/jboss5/server/warset/jsm.war
    08.jbossfiledirname=$4
    09.#dirname获取jboss上war文件路径 eg:/opt/app/jboss5/server/warset
    10.mianjbossfiledir=`dirname $jbossfiledirname`
    11.#basename获取jboss上war文件的名称 eg:jsm.war
    12.jbossfilename=`basename $jbossfiledirname`
    13.#备份文件的主目录
    14.mainbackupdir=$5
    15.#备份同名标识
    16.backupflag=$6
    17.#备份文件夹的名称 eg:tskk-jsm.war201412021439
    18.DATE=$(date +%Y%m%d%H%M)
    19.filename2=$backupflag-${jbossfilename}${DATE}
    20.#sshpass登录远程服务器,进行war文件的备份和删除
    21.sshpass -p $passx ssh -o StrictHostKeyChecking=no -tt $userx@$IP <<sshaccess
    22.cd $mainbackupdir
    23.mkdir $filename2
    24.cd $mianjbossfiledir
    25.cp -R $jbossfilename $mainbackupdir/$filename2
    26.rm -rf $jbossfilename
    27.exit
    28.sshaccess
    29.echo "file backupdelete end-ok………………"
    30.exit 0
    注:Shell命令sshpass非交互SSH有密码验证

    -tt 防止脚本调用ssh后出现Pseudo-terminal will not be allocated because stdin is not a terminal问题

    -o StrictHostKeyChecking=no 避免第一次登录出现公钥检查

    remoteuploadwar.sh实现远程项目部署服务器:
    #!/bin/sh
    02.echo "file upload start………………"
    03.#访问远程服务器ip,user,pass
    04.IP=$1
    05.userx=$2
    06.passx=$3
    07.#Jenkins下文件全路径名称
    08.jenkinsfiledirname=$4
    09.#获取Jenkins下文件路径
    10.jenkinsfiledir=`dirname $jenkinsfiledirname`
    11.#获取Jenkins上文件名称
    12.jenkinsfilename=`basename $jenkinsfiledirname`
    13.#jboss上war文件全路径名称
    14.jbossfiledirname=$5
    15.#jboss上war文件路径
    16.jbossfiledir=`dirname $jbossfiledirname`
    17.#jboss上war文件名称
    18.jbossfilename=`basename $jbossfiledirname`
    19. #对Jenkins下jar按jboss上规范给文件命名
    20. #cd $jenkinsfiledir
    21. #mv $jenkinsfilename $jbossfilename
    22. #重命名后Jenkins上文件全路径名称
    23. #rejenkinsfiledirname=$jenkinsfiledir/$jbossfilename
    24.#sshpass远程上传文件到jboss服务器
    25.sshpass -p $passx scp -o StrictHostKeyChecking=no $jenkinsfiledirname $userx@$IP:$jbossfiledir <<sshpassupload
    26.exit
    27.sshpassupload
    28.echo "file upload end-ok………………"
    29.exit 0

    remoterestartjboss.sh实现远程服务器重启:
    #!/bin/sh
    02.echo "jboss restart start………………"
    03.#获取jboss服务器的连接信息ip,user,pass
    04.IP=$1
    05.userx=$2
    06.passx=$3
    07.#获取jboss服务器的/bin目录
    08.jbossbindir=$4
    09.sshpass -p $passx ssh -tt -o StrictHostKeyChecking=no $userx@$IP <<jbossrestart
    10.cd $jbossbindir
    11.sudo -u jboss5 ./shutdown.sh
    12.sudo -u jboss5 ./start.sh
    13.exit
    14.jbossrestart
    15.echo "jboss restart ok………………"
    16.exit 0
    实现了,备份、上传、重启的功能,但做了三次对服务器的连接断开!

  • 相关阅读:
    react-绑定this并传参的三种方式
    CSS中使用文本阴影与元素阴影
    react-native构建基本页面2---轮播图+九宫格
    HTML 事件属性
    博客园文章版权声明(js自动生成)
    js 字符串方法 和 数组方法总览
    软工期末各类图复习笔记
    AES算法描述
    DQL查询语言-基础查询、条件查询、排序查询、多表连接查询、子查询、分页查询和联合查询
    Python-模块、包和库
  • 原文地址:https://www.cnblogs.com/wangchunniu1314/p/6340092.html
Copyright © 2011-2022 走看看