自动化:利用python+paramiko,在服务器进行版本升级相关操作。

    技术2023-10-28  115

    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再看看是否安装成功,进程起来没有
    Processed: 0.013, SQL: 12