<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      jenkins 自動化部署執行shell

      # -*- coding:utf-8 _*-
      """
      @author:Administrator
      @file: new_app_publish.py
      @time: 2018/08/29
      """

      import paramiko
      import sys


      class AppPush(object):
      def __init__(self, project, ip="", user="devroot", pwd="", port=22, ):
      self.ip = ip
      self.port = port
      self.user = user
      self.pwd = pwd
      self.project = project
      # self.connect_server()

      def connect_server(self):
      paramiko.util.log_to_file('ssh.log') # 使用paramiko記錄日志
      self.s = paramiko.SSHClient() # 綁定一個實例
      self.s.load_system_host_keys() # 加載known_hosts文件
      self.s.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # 遠程連接如果提示yes/no時,默認為yes
      self.s.connect(self.ip, self.port, self.user, self.pwd, timeout=5)
      return True

      def get_projetct_name(self):
      pro_list = ["applicationRouter",
      "businessService",
      "customerApp",
      "transferService",
      "memberService",
      "pushCenter",
      "configServer"]
      assert self.project in pro_list, "project must be applicationRouter,businessService,customerApp," \
      "transferService,memberService,pushCenter,configServer"
      path = "/usr/local/{0}/{0}.jar".format(self.project)
      cmd = "sh /usr/local/{0}/{0}.sh %s".format(self.project)
      return (path, cmd)

      def exce_server(self, action):
      ret = self.connect_server()
      if action == "stop":
      # get the command
      cmd = self.get_projetct_name()[1] % action
      print(cmd)
      # 執行遠程腳本
      elif action == "start":
      appname = self.get_projetct_name()[0]
      cmd = 'nohup /usr/local/java/bin/java -Dspring.cloud.config.uri=' \
      '"http://" -jar {app_name} > /dev/null 2>&1 &'. \
      format(
      app_name=appname)
      print(cmd)
      # check clinet connectec to server
      if ret:
      """
      stdin = chan.makefile('wb', bufsize)
      stdout = chan.makefile('r', bufsize)
      stderr = chan.makefile_stderr('r', bufsize)
      """
      stdin, stdout, stderr = self.s.exec_command(cmd)
      print(stdout.read())
      # sti = stdin.read()
      sto = stdout.read()
      ste = stderr.read()
      for i in [sto, ste]:
      try:
      if not i:
      print(i.decode("utf-8"))
      except:
      raise UnicodeDecodeError("decode error")
      else:
      raise ConnectionError("connection server error")
      self.disconnect_server()
      return True

      def disconnect_server(self):
      self.s.close()


      if __name__ == '__main__':
      # AppPush("pushCenter").exce_server("stop")
      AppPush(sys.argv[1]).exce_server(sys.argv[2])

      posted @ 2018-09-13 14:22  tny_leyon  閱讀(627)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 男人扒女人添高潮视频| 国语偷拍视频一区二区三区| 性高湖久久久久久久久| 久久精品一本到东京热| 精品人妻中文无码av在线| 国产成人精品三上悠亚久久| 无码人妻斩一区二区三区| 久久久久高潮毛片免费全部播放| 久久精品国产99亚洲精品| 亚洲高清日韩专区精品| 色综合久久蜜芽国产精品| 成人午夜在线观看刺激| 蜜桃网址| 日韩有码中文字幕第一页| 国产香蕉97碰碰久久人人| 亚洲天堂成人网在线观看| 最近2019中文字幕大全第二页| 偷自拍另类亚洲清纯唯美| 成人免费A级毛片无码片2022 | 国产激情艳情在线看视频| 久久99精品久久久大学生| 免费无码黄十八禁网站| 成人精品日韩专区在线观看| 激情自拍校园春色中文| 精品国产女同疯狂摩擦2| 性欧美老人牲交xxxxx视频| 国产精品一二三中文字幕| 国产精品亚洲二区在线播放| 狠狠爱五月丁香亚洲综| 国产成人永久免费av在线| 久久精品国产亚洲精品色婷婷| 口爆少妇在线视频免费观看| 国产白丝无码免费视频| 亚洲精品国产一二三区| 欧美日本精品一本二本三区| P尤物久久99国产综合精品| 亚洲av乱码一区二区| 国产精品久久久久久久久电影网| 99久久精品看国产一区| 人人澡人摸人人添| 亚洲国产精品久久电影欧美|