成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

如何利用python更新ssh遠程代碼-創(chuàng)新互聯(lián)

這篇文章將為大家詳細講解有關如何利用python更新ssh遠程代碼,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

創(chuàng)新互聯(lián)致力于互聯(lián)網(wǎng)網(wǎng)站建設與網(wǎng)站營銷,提供網(wǎng)站制作、成都網(wǎng)站制作、網(wǎng)站開發(fā)、seo優(yōu)化、網(wǎng)站排名、互聯(lián)網(wǎng)營銷、小程序制作、公眾號商城、等建站開發(fā),創(chuàng)新互聯(lián)網(wǎng)站建設策劃專家,為不同類型的客戶提供良好的互聯(lián)網(wǎng)應用定制解決方案,幫助客戶在新的全球化互聯(lián)網(wǎng)環(huán)境中保持優(yōu)勢。

用python paramiko ssh 服務器,并pull對應目錄代碼的腳本

pull.py

import paramiko
import sys

def sshclient_execmd(hostname, port, username, password, execmd):
  paramiko.util.log_to_file("paramiko.log")

  s = paramiko.SSHClient()
  s.set_missing_host_key_policy(paramiko.AutoAddPolicy())
  if(port==0):
    s.connect(hostname=hostname, username=username, password=password)
  else:
    s.connect(hostname=hostname, port=port, username=username, password=password)
  stdin, stdout, stderr = s.exec_command(execmd)
  stdin.write("Y") # Generally speaking, the first connection, need a simple interaction.

  print stdout.read()

  s.close()


def main(server,project):
# def main():
  server_list = {'2108':{'hostname':'112.22.22.22','username':'root','password':'123456','port':2108},
         '11':{'hostname':'192.168.1.11','username':'root','password':'123456','port':0}
          }

  if(server == '118'):
    execmd = "cd /workspace/" + project + "/ && git pull"
    info = os.popen(execmd).read()  # 這里是更新本地的,可以返回打印出cmd 的回顯結果
    print info

  up_list = server_list[server]
  hostname = up_list['hostname']
  port = up_list['port']
  username = up_list['username']
  password = up_list['password']

  execmd = "cd /workspace/" + project +  "/ && git pull"
  sshclient_execmd(hostname, port, username, password, execmd)


if __name__ == "__main__":
  server = str(sys.argv[1])
  project = str(sys.argv[2])
  main(server,project)

上面的是更新遠程 服務器上 project 目錄pull 的源碼。

/workspace/" + project + "/ && git pull

比如運行 `python pull.py 2108 web ` 就會 用 paramiko.SSHClient, 來連接 配置于 main 函數(shù)中的 server_list list 中的 2108 的 hostnameusername、 password 、port 參數(shù),連接服務器后,執(zhí)行 execmd 中配置好的命令。這里我用了argv 獲取輸入的參數(shù),來控制要更新的項目路徑。這樣一個利用python ssh 遠程服務器,并更新對應目錄代碼的腳本就完成了。

這里我配置了兩個服務器,11這個服務器,沒有使用到 port ,所以我做了判斷,來控制連接中是否帶 port 參數(shù),不然會報錯。

if(port==0):

這里注意,如果是第一次執(zhí)行 需要接受 author_key 緩存,還需要注意 是否有更新權限

python使用ssh連接遠程服務器,并執(zhí)行命令代碼

下面的代碼使用pexpect生成一個ssh進程,然后連接遠程服務器,并執(zhí)行命令。
在使用下面程序之前,需要先通過easy_install pexpect安裝pexpect程序。

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import pexpect

def ssh_cmd(ip, passwd, cmd):
  ret = -1
  ssh = pexpect.spawn('ssh root@%s "%s"' % (ip, cmd))
  try:
    i = ssh.expect(['password:', 'continue connecting (yes/no)?'], timeout=5)
    if i == 0 :
      ssh.sendline(passwd)
    elif i == 1:
      ssh.sendline('yes\n')
      ssh.expect('password: ')
      ssh.sendline(passwd)
    ssh.sendline(cmd)
    r = ssh.read()
    print r
    ret = 0
  except pexpect.EOF:
    print "EOF"
    ssh.close()
    ret = -1
  except pexpect.TIMEOUT:
    print "TIMEOUT"
    ssh.close()
    ret = -2
  return ret

關于“如何利用python更新ssh遠程代碼”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。

本文名稱:如何利用python更新ssh遠程代碼-創(chuàng)新互聯(lián)
本文地址:http://jinyejixie.com/article32/isipc.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、網(wǎng)站改版、動態(tài)網(wǎng)站、品牌網(wǎng)站設計、全網(wǎng)營銷推廣、網(wǎng)站建設

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站
仁布县| 合山市| 安新县| 寿宁县| 漳平市| 八宿县| 柏乡县| 徐州市| 新密市| 珠海市| 潞西市| 九寨沟县| 抚顺县| 南丰县| 河池市| 阿瓦提县| 环江| 于都县| 呼玛县| 云和县| 太原市| 曲沃县| 班玛县| 璧山县| 故城县| 凤冈县| 宁城县| 渭源县| 开化县| 祥云县| 南宫市| 通城县| 西宁市| 化隆| 桐乡市| 琼海市| 巫溪县| 四子王旗| 宁远县| 咸丰县| 汉川市|