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
实现了,备份、上传、重启的功能,但做了三次对服务器的连接断开!
Linux下远程备份、上传工程,重启服务器的更多相关文章
- linux下将文件上传到svn服务器
linux下将文件上传到svn服务器 摘自:https://blog.csdn.net/sky_yangge/article/details/41544773 2014年11月27日 16:47:57 ...
- linux下使用SVN上传项目
linux下使用SVN上传项目 摘自:https://blog.csdn.net/puppet_/article/details/78259591 2017年10月17日 13:51:33 puppe ...
- Linux下通过ssh上传下载文件
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/jun8148/article/deta ...
- Linux 下 ---ThinkPHP 图片上传提示:上传根目录不存在!请尝试手动创建
2016年11月15日11:15:47 Windows下如果碰到如此问题,要看文件保存根路径里的rootpath,比如ThinkPHP框架里config.php文件里的的参数配置: //文件上传相关配 ...
- windows、linux下通过ftp上传文件小脚本
一.windows @echo off #open ip 将要上传文件的IP地址echo open IP>ftp.up #用户名echo ninic>>ftp.up #密码echo ...
- linux 下向github上传代码
上传代码: cd TPS/devices/M8 git init #//初始化 git add . #如果是.表示上传全 ...
- Linux下安装lrzsz上传下载工具
使用yum安装 为什么要使用yum安装? 答:安装十分方便,几乎不需要别的操作,只需要一个yum命令就可以完成所有的安装过程. yum -y install lrzsz 要有网络才行 输入命令:rz ...
- Linux下自动备份MySQL数据库并上传到远程FTP服务器
Linux下自动备份MySQL数据库并上传到远程FTP服务器且删除指定日期前的备份Shell脚本 说明: 1.备份MySQL数据库存放目录/var/lib/mysql下面的xshelldata数据库 ...
- 解决Windows下编辑脚本上传到Linux后遇到^M的方法
Windows下编辑脚本上传到Linux后遇到^M,导致脚本无法执行,原因是因为Linux与Windows对 "回车键" 编码不同 解决方法如下: 在使用UE->文件-> ...
随机推荐
- MQTT协议QoS服务质量 (Quality of Service 0, 1 & 2)概念学习
什么是 QoS ? QoS (Quality of Service) 是发送者和接收者之间,对于消息传递的可靠程度的协商. QoS 的设计是 MQTT 协议里的重点.作为专为物联网场景设计的协议,MQ ...
- python-day21--sys模块
sys模块是与python解释器交互的一个接口 1.sys.argv 命令行参数List,第一个元素是程序本身路径 # 传参 应用场景:权限控制 2.sys.path ...
- nyoj306 二分+DFS
走迷宫 时间限制:1000 ms | 内存限制:65535 KB 难度:5 描述 Dr.Kong设计的机器人卡多非常爱玩,它常常偷偷跑出实验室,在某个游乐场玩之不疲.这天卡多又跑出来了,在SJ ...
- Linux文件删除,但是df之后磁盘空间没有释放
Linux 磁盘空间总是报警,查到到大文件,删除之后,df看到磁盘空间并没有释放. 查找了下发现系统对rm进行了alias ,因为Linux对删除操作没有回收站机制,对rm操作进行了自定义,对删除 ...
- Superset
Superset是一款可自助.可交互,可视化非常不错的产品 Superset is a data exploration platform designed to be visual, intuiti ...
- view_baseInfo
create view view_baseInfo as select c.spbh,c.tongym, c.spmch,c.shpgg,c.shpchd,a.pihao,a.pici,a.sxrq, ...
- Linux文件与目录管理(三)
一.Linux文件内容查看 1.cat:由第一行开始显示文件内容 2.tac:从最后一行开始显示,可以看出tac是cat倒着写 3.nl:显示的时候,顺便输出行号 4.more:一页一页的显示文件内容 ...
- 使用axios发送post请求,将JSON数据改为为form类型
我的github(PS:希望star):https://github.com/thWinterSun/v-admin 通常前端通过POST请求向服务器端提交数据格式有4中,分别是"appli ...
- javascript数据结构——队列
队列是一种先进先出的数据结.队列只能在队尾插入元素,在队首删除元素,这点和栈不一样.它用于存储顺序排列的数据.队列就像我们日常中的排队一样,排在最前面的第一个办理业务,新来的人只能在后面排队.队列这种 ...
- asp.net MVC html.ActionLink的几种参数格式
一 Html.ActionLink("linkText","actionName") 该重载的第一个参数是该链接要显示的文字,第二个参数是对应的控制器的方法, ...