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 [email protected]$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 [email protected]$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 [email protected]$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
实现了,备份、上传、重启的功能,但做了三次对服务器的连接断开!

时间: 2024-08-09 12:19:01

Linux下远程备份、上传工程,重启服务器的相关文章

linux下将文件上传到svn服务器

linux下将文件上传到svn服务器 摘自:https://blog.csdn.net/sky_yangge/article/details/41544773 2014年11月27日 16:47:57 sky样 阅读数 7526 1.首先将svn的所指定的目录checkout到本地目录下: 使用svn co +服务器的地址(path),输入服务器的密码即可,此时会自动在本地目录下同步服务器你所指定的目录及里面所有的文件(其中co 即是 checkout的简写) 例如:svn co hettp:/

linux下使用SVN上传项目

linux下使用SVN上传项目 摘自:https://blog.csdn.net/puppet_/article/details/78259591 2017年10月17日 13:51:33 puppet_ 阅读数 2225 使用SVNimport命令 svn import -m "init import" https://svnserver/project_dir 当前目录下的所有文件上传到server地址 原文地址:https://www.cnblogs.com/LiuYanYGZ/

linux下远程备份mysql数据库

本次环境主要是远程备份mysql数据库的一种常见方法,对于其他知识不做太多讲解. 环境需求: 两台linux:一台mysql数据库服务器,另一台当作客户端用来做备份. 环境目标: 实现mysql数据库的远程备份 例子: (A为服务端ip为192.168.1.1    B为客户端ip为192.168.1.2) 1.首先你得在A上建立一个数据库(建立数据库名称我以 xianyu 为例) create database xianyu;   (建立数据库xianyu) 2.在A上建立一个数据库用户用来做

Linux 下 ---ThinkPHP 图片上传提示:上传根目录不存在!请尝试手动创建

2016年11月15日11:15:47 Windows下如果碰到如此问题,要看文件保存根路径里的rootpath,比如ThinkPHP框架里config.php文件里的的参数配置: //文件上传相关配置 'UPLOAD_CONFIG' => array( 'mimes' => '', //允许上传的文件MiMe类型 'maxSize' => 2 * 1024 * 1024, //上传的文件大小限制 (0-不做限制,默认为2M,后台配置会覆盖此值) 'autoSub' => true

linux 下向github上传代码

上传代码: cd TPS/devices/M8 git init                      #//初始化 git add .                    #如果是.表示上传全部目录下的文件,可以是某个文件 git commit -m 'version 1.0' git remote add origin https://github.com/jiugui1/TOS.git git push origin master -f #[email protected]:~/to

linux下实现ftp上传文件

上传: #!/bin/sh set -x set -e local_rootPath=/hadoop/datadir/windeploy/temp host="192.168.12.2" # 需要上传的ftp地址 port="21" # 端口 user="ftpuser" # ftp登陆的用户名 passwd="123456" # ftp 登陆用户口令 customer="aaa" ftp -n<&l

mysql自动备份数据库,同时ftp上传到指定服务器(scp远程获取本地备份)

最近要把服务器托管到电信机房,所以要对数据库进行备份,同时要把备份ftp上传到公司指定服务器. 一.先安装ftp服务 1.查询是否安装vsftpd: rpm -qa |grep vsftpd (rpm的安装:apt-get install rpm) 或者查询当前ftp进程:ps -ef|grep vsftpd ? 或者 ps -ef|grep ftp 2.如果没有就安装yum install vsftpd 3.安装完后看ftp安装目录:ps -ef|grep ftp 发现我的配置文件默认:/et

Linux下手动备份还原硬盘主引导记录MBR跟硬盘分区表DPT教程

Linux下手动备份还原硬盘主引导记录MBR跟硬盘分区表DPT教程 二 18 奶牛 Linux, Ubuntu, Windows 1,885 views查看评论 最近奶牛一直在折腾linux下的grub跟grub2,因为前阵子用ghost恢复windows的时候出现错误,导致分区表被破坏,无法进入系统.今天给大家介绍下如何备份跟还原我们的硬盘主引导扇区.首先我来介绍下这个硬盘主引导扇区,因为对于这个主引导记录MBR跟这个硬盘分区表DPT的关系,可能有的朋友还不是那么清晰. 硬盘主引导扇区(硬盘的

Linux下定时备份MySQL数据库的Shell脚本

Linux下定时备份MySQL数据库的Shell脚本 对任何一个已经上线的网站站点来说,数据备份都是必须的.无论版本更新还是服务器迁移,备份数据的重要性不言而喻.人工备份数据的方式不单耗费大量时间和精力,还灰常不专业的说.于是,有了下面这段脚本的出现.参考了网上的很多教程,外加自己的测试,以下脚本经测试可用.#!/bin/bash#Shell Command For Backup MySQL Database Everyday Automatically By Crontab#Author :