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

简介:     Linux服务器实现远程,原项目的备份、删除,新项目上传,以及远程重启服务器! 分成一个主shell调用三个shell文件步骤完成。 mainsh.sh一次按顺序执行多个脚本,将三步sh顺序完成: #!/bin/sh#此Shell一次按顺序执行多个脚本#参数:: #远程jboss服务器所在的ip IP=127.0.0.1 #服务器登录账户 userx='tskk'

    Linux服务器实现远程,原项目的备份、删除,新项目上传,以及远程重启服务器!

分成一个主shell调用三个shell文件步骤完成。

mainsh.sh一次按顺序执行多个脚本,将三步sh顺序完成:

#!/bin/sh
#此Shell一次按顺序执行多个脚本
#参数::
 #远程jboss服务器所在的ip
 IP=127.0.0.1
 #服务器登录账户
 userx='tskk'
 #服务器登录密码
 passx='sasa'
 #部署jboss远程服务器上项目war文件的全路径名称(用于备份)
 jbossfiledirname=/opt/app/jboss5/server/warset/jasmine.war 
 #备份文件的主目录
 filebackupdir=/home/tskk/backup
 #同名备份区分标识(防止不同项目文件重名备份)
 backupflag=tskk
 #本地Linux服务器(或Jenkins下项目)下文件全路径名称
 jenkinsfiledirname=/opt/app/jenkins/workspace/jasmine.war
 #jboss下服务器/bin路径(用于重启)
 jbossbinfiledir=/opt/app/jboss5/server/bin

#远程操作shell文件的全路径,也可为不同文件夹
shfiledir=/opt/app/tskk/commonsh
#远程服务器拷贝,删除,上传,重启jboss
sh $shfiledir/remotebackupdeletewar.sh $IP $userx $passx $jbossfiledirname $filebackupdir $backupflag
sh $shfiledir/remoteuploadwar.sh $IP $userx $passx $jenkinsfiledirname $jbossfiledirname
sh $shfiledir/remoterestartjboss.sh $IP $userx $passx $jbossbinfiledir

注:sh  ***.sh  parm1 parm2…,可以顺序执行多个脚本

remotebackupdeletewar.sh实现远程备份文件:

#!/bin/sh
echo "file backupdelete start………………"
#访问远程服务器ip,user,pass
IP=$1
userx=$2
passx=$3
#jboss服务器上项目war文件的全路径名称 eg:/opt/app/jboss5/server/warset/jsm.war
jbossfiledirname=$4
#dirname获取jboss上war文件路径 eg:/opt/app/jboss5/server/warset
mianjbossfiledir=`dirname $jbossfiledirname`
#basename获取jboss上war文件的名称 eg:jsm.war
jbossfilename=`basename $jbossfiledirname`
#备份文件的主目录
mainbackupdir=$5
#备份同名标识
backupflag=$6
#备份文件夹的名称 eg:tskk-jsm.war201412021439
DATE=$(date +%Y%m%d%H%M)
filename2=$backupflag-${jbossfilename}${DATE}
#sshpass登录远程服务器,进行war文件的备份和删除
sshpass -p $passx ssh -o StrictHostKeyChecking=no -tt $userx@$IP <<sshaccess
cd $mainbackupdir
mkdir $filename2
cd $mianjbossfiledir
cp -R $jbossfilename $mainbackupdir/$filename2
rm -rf $jbossfilename
exit
sshaccess
echo "file backupdelete end-ok………………"
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
echo "file upload start………………"
#访问远程服务器ip,user,pass
IP=$1
userx=$2
passx=$3
#Jenkins下文件全路径名称
jenkinsfiledirname=$4
#获取Jenkins下文件路径
jenkinsfiledir=`dirname $jenkinsfiledirname`
#获取Jenkins上文件名称
jenkinsfilename=`basename $jenkinsfiledirname`
#jboss上war文件全路径名称
jbossfiledirname=$5
#jboss上war文件路径
jbossfiledir=`dirname $jbossfiledirname`
#jboss上war文件名称
jbossfilename=`basename $jbossfiledirname`
	#对Jenkins下jar按jboss上规范给文件命名
	#cd $jenkinsfiledir
	#mv $jenkinsfilename $jbossfilename
	#重命名后Jenkins上文件全路径名称
	#rejenkinsfiledirname=$jenkinsfiledir/$jbossfilename
#sshpass远程上传文件到jboss服务器
sshpass -p $passx scp -o StrictHostKeyChecking=no $jenkinsfiledirname $userx@$IP:$jbossfiledir <<sshpassupload
exit
sshpassupload
echo "file upload end-ok………………"
exit 0

remoterestartjboss.sh实现远程服务器重启:

#!/bin/sh
echo "jboss restart start………………"
#获取jboss服务器的连接信息ip,user,pass
IP=$1
userx=$2
passx=$3
#获取jboss服务器的/bin目录
jbossbindir=$4
sshpass -p $passx ssh -tt -o StrictHostKeyChecking=no $userx@$IP <<jbossrestart
cd $jbossbindir
sudo -u jboss5 ./shutdown.sh
sudo -u jboss5 ./start.sh
exit
jbossrestart
echo "jboss restart ok………………"
exit 0

实现了,备份、上传、重启的功能,但做了三次对服务器的连接断开!

 

 



 

目录
相关文章
|
6天前
|
监控 Linux Shell
|
8天前
|
监控 Java Linux
Linux系统之安装Ward服务器监控工具
【10月更文挑战第17天】Linux系统之安装Ward服务器监控工具
24 5
Linux系统之安装Ward服务器监控工具
|
1天前
|
Linux 数据库
Linux服务如何实现服务器重启后的服务延迟自启动?
【10月更文挑战第25天】Linux服务如何实现服务器重启后的服务延迟自启动?
23 3
|
4天前
|
存储 安全 关系型数据库
Linux系统在服务器领域的应用与优势###
本文深入探讨了Linux操作系统在服务器领域的广泛应用及其显著优势。通过分析其开源性、安全性、稳定性和高效性,揭示了为何Linux成为众多企业和开发者的首选服务器操作系统。文章还列举了Linux在服务器管理、性能优化和社区支持等方面的具体优势,为读者提供了全面而深入的理解。 ###
|
6天前
|
关系型数据库 MySQL Linux
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
80 2
|
1天前
|
缓存 监控 Linux
Python 实时获取Linux服务器信息
Python 实时获取Linux服务器信息
|
8天前
|
运维 安全 Linux
Linux中传输文件文件夹的10个scp命令
【10月更文挑战第18天】本文详细介绍了10种利用scp命令在Linux系统中进行文件传输的方法,涵盖基础文件传输、使用密钥认证、复制整个目录、从远程主机复制文件、同时传输多个文件和目录、保持文件权限、跨多台远程主机传输、指定端口及显示传输进度等场景,旨在帮助用户在不同情况下高效安全地完成文件传输任务。
83 5
|
8天前
|
Linux
Linux系统之expr命令的基本使用
【10月更文挑战第18天】Linux系统之expr命令的基本使用
35 4
|
5天前
|
运维 监控 网络协议
|
8天前
|
Unix Linux
Linux | Rsync 命令:16 个实际示例(下)
Linux | Rsync 命令:16 个实际示例(下)
22 3
Linux | Rsync 命令:16 个实际示例(下)