pythonスクリプトによるwindowsアップロード導入tomcatの実現

15107 ワード

@pythonスクリプトによるwindowsアップロード導入tomcatの実現
pythonスクリプトによるwindowsアップロード導入tomcatの実現
最初のレコードは、主にpythonスクリプトを使用してwindowsからファイルをコピーしてアップロードし、tomcatを再起動してparamiko osの2つのライブラリを使用します.
ファイルアップロードモジュール
直接コードをつけてまずwindowsのファイルを手に入れて、それからこのファイルを遍歴して相対的な経路に取ってLinuxサーバーの上のアドレスの上書きファイルに置き換えます
def upload(hosId,port):
    try:
        t = paramiko.Transport((hosId, port))
        t.connect(username='root', password='123456')
        sftp = paramiko.SFTPClient.from_transport(t)
        print('      %s ' % datetime.datetime.now())

        try:
            for root,dirs,files in os.walk(winStr+'\\***'):
                for file in files:
                    abs_path = os.path.join(root,file)
                    real_path = abs_path.split(winStr)[1]
                    print(real_path.replace('\\','/'))
                    print('       ')
                    print('/opt/xvdb/tomcat_ite/webapps'+real_path)
                    sftp.put(os.path.join(root,file), '/opt/xvdb/tomcat_ite/webapps'+real_path.replace('\\','/'))
        except Exception as e:
            print('   %s ' % datetime.datetime.now())
        print('       %s ' % datetime.datetime.now())
        t.close()
    except Exception as e:
        print(repr(e))

モジュールの再起動
SSHClientモジュールでサーバ上のtomcatを再起動できる点注意したいのは、再起動コマンドを実行するときにプロファイルsource/etc/profileを先に読み込む必要があることです.そうしないと、再起動コマンドが間違っています.
stdin, stdout, stderr = ssh.exec_command('source /etc/profile;/opt/xvdb/tomcat_ite/bin/startup.sh')
def restart(hosId,port):
    #       
    4 #  SSH  
    ssh = paramiko.SSHClient()
    #       know_hosts      
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    #      
    ssh.connect(hostname= hosId, port= port, username='root', password='123456')

    #         
    stdin, stdout, stderr = ssh.exec_command('cd /opt/xvdb/tomcat_ite/bin')
    #         
    stdin, stdout, stderr = ssh.exec_command('pwd')
    result = stdout.read()
    #        
    stdin, stdout, stderr = ssh.exec_command('ps -ef | grep tomcat_ite')
    result = stdout.read()
    #        jdk               
    kid_list = getkid(result)
    print(kid_list)

    #        
    if len(kid_list) !=0:
        ssh.exec_command('kill -9 %s' %str(kid_list[1]))

    #     
    if len(kid_list) !=0:
        stdin, stdout, stderr = ssh.exec_command('source /etc/profile;/opt/xvdb/tomcat_ite/bin/startup.sh')
        result=stdout.readlines()
        print(result)
    print ('    ')
    #     
    ssh.close()

#           
def getkid(result):
    session_str = str(result,encoding='utf-8')
    session = session_str.split('
'
) print(session) # kid kid_list = [] for i in session: if i.count('jdk')>0: kid_str = i.split(' ') for j in kid_str : if j != '': kid_list.append(j) print(kid_list) return kid_list