import paramiko
#创建SSHClient 实例对象
ssh = paramiko.SSHClient()
#信任远程主机,允许访问
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
#连接远程机器,地址,端口,user,pwd
ssh.connect(hostname='',port='',username='user',password='pwd')
#执行命令(test)
ssh.exec_command('mkdir huhulala')
for x in range(20):
ssh.exec_command('echo "ip=192.168.1.{}" > cf{}.py'.format(x+1,x+1))
#查找历史版本(关键词‘apiteach’)
stdin,stdout,stderr = ssh.exec_command('ps -ef|grep apiteach|grep -v grep')
#打印查找的结果
output = stdout.read().decode()
print(output)
if '关键字' in output:
print('老版本程序在运行')
parts = output.split(' ')
parts = [part for part in parts if part]
pid = parts[1]
#杀掉老版本进程
ssh.exec_command('kill -9 {}'.format(pid))
#删除老版本代码包
ssh.exec_command('rm -f restapi-teach.zip')
#上传新版本
sftp = ssh.open_sftp()
sftp.put('本地路径','目标路径')
sftp.close()
#备份原来的安装目录
ssh.exec_command('rm -rf restapi-teach.bak;mv restapi-teach restapi-teach.bak')
#解压安装包
ssh.exec_command('unzip restapi-teach.zip',printOutput=False)
#运行
ssh.exec_command('cd restapi-teach;chomd +x run.sh;dos2unix run.sh;./run.sh;sleep 5')
#ps -ef|grep apiteach|grep -v grep再看看是否安装成功,进程起来没有
自动化:利用python+paramiko,在服务器进行版本升级相关操作。
最新推荐文章于 2023-03-08 15:41:52 发布