pip install paramiko
import paramiko
#建立乙個ssh的客戶端,用來連線伺服器
ssh = paramiko.sshclient()
#建立乙個ssh的白名單
know_host = paramiko.autoaddpolicy()
#載入建立的白名單
ssh.set_missing_host_key_policy(know_host)
#連線伺服器
ssh.connect(
hostname = "10.10.21.177",
port = 22,
username = "root",
password = "123"
)#執行命令
stdin,stdout,stderr = ssh.exec_command("rm -rf /root/desktop/mv")
#stdin 標準格式的輸入,是乙個寫許可權的檔案物件
#stdout 標準格式的輸出,是乙個讀許可權的檔案物件
#stderr 標準格式的錯誤,是乙個寫許可權的檔案物件
print(stdout.read().decode())
ssh.close()
import threading
import paramiko
class paramikothreading(threading.thread):
def __init__(self,command,host,username,password,port=22):
self.command = command
self.host = host
self.username = username
self.password = password
self.port = port
super(paramikothreading,self).__init__()
def run(self):
ssh = paramiko.sshclient()
# 建立乙個ssh的白名單
know_host = paramiko.autoaddpolicy()
# 載入建立的白名單
ssh.set_missing_host_key_policy(know_host)
# 連線伺服器
ssh.connect(
hostname=self.host,
port=self.port,
username=self.username,
password=self.password,
)stdin, stdout, stderr = ssh.exec_command(self.command)
print("*"*60)
print("ip:%s,\ncommand:%s,\n"%(self.host,self.command))
print(stdout.read().decode())
print("*"*60)
ssh.close()
if __name__ == '__main__':
from settings import pool #呼叫配置檔案配置檔案為settings.py
command = "ls"
t_pool =
for host in pool:
t = paramikothreading(
host=host.get("host","localhost"),
username=host.get("username","root"),
password=host.get("password","123"),
command=command
)for t in t_pool:
t.start()
for t in t_pool:
t.join()
pool = [
dict(host="10.10.21.177", username="root", password="123"),
dict(host="10.10.21.177", username="root", password="123"),
dict(host="10.10.21.177", username="root", password="123"),
dict(host="10.10.21.177", username="root", password="123"),
dict(host="10.10.21.177", username="root", password="123"),
dict(host="10.10.21.177", username="root", password="123"),
dict(host="10.10.21.177", username="root", password="123"),
dict(host="10.10.21.177", username="root", password="123"),
]
使用paramiko的shell互動式連線會讓本地返回結果為命令列介面,可以在本地**的返回結果下,直接操作命令行。**如下:
import paramiko
#建立乙個ssh的客戶端
ssh = paramiko.sshclient()
#建立乙個ssh的白名單
know_host = paramiko.autoaddpolicy()
#載入建立的白名單
ssh.set_missing_host_key_policy(know_host)
#連線伺服器
ssh.connect(
hostname = "10.10.21.177",
port = 22,
username = "root",
password = "12345"
)shell = ssh.invoke_shell()
shell.settimeout(1)
command = input(">>>"+"\n")
shell.send(command)
while true:
try:
recv = shell.recv(512).decode()
if recv:
print(recv)
else:
continue
except:
command = input(">>>") + "\n"
shell.send(command)
ssh.close() #關閉連線
import paramiko
trans = paramiko.transport(
sock=("10.10.21.177",22)
)trans.connect(
username="root",
password="12345"
)sftp = paramiko.sftpclient.from_transport(trans)
#上傳#把本地的檔案settings.py,上傳到遠端為/root/desktop/settings.py
sftp.put("settings.py","/root/desktop/settings.py")
# sftp.get("/root/desktop/hh.py","hh.py")
sftp.close()
python 使用mysql進行操作
使用pyclarm直接在file deflaut setting中找到mysql connector python模組匯入。在mysql資料庫中建立資料python 在資料庫中建立資料表people import mysql.connector db mysql.connector.connect ...
python進行檔案操作
什麼是檔案 檔案是系統儲存區域的乙個命名位置,用來儲存一些資訊,便於後續訪問。能夠在非易失性儲存器中實現持續性儲存,比如在硬碟上。當我們要讀取或者寫入檔案時,我們需要開啟檔案 在操作完畢時,我們需要關閉檔案,以便釋放和檔案操作相關的系統資源,因此,檔案操作的主要包括以下 開啟檔案 python使用內...
Linux作業系統下如何利用SSH進行遠端控制
首先,ssh軟體包由兩部分組成,一部分是伺服器端軟體包,另一部分是客戶軟體包。針對unix linux系統,這兩個軟體包是分開打包在兩個不同的檔案中的。在windows 9x nt 2000中,也分為兩部分,不同之處在於,伺服器軟體包只能執行在windows nt及 windows 2000 ser...