遠端執行命令

2022-07-15 19:18:11 字數 2483 閱讀 8909

一、需求

# server 下發命令

# client 執行命令

# ssh協議

# import os

# ret = os.popen('ls').read()

# print(ret)

import subprocess

# 內建模組 和os模組的功能有相似之處

# 能執行作業系統的命令的功能

ret = subprocess.popen('dir', # 要執行的命令

shell=true, # 表示要執行的是一條系統命令

stdout=subprocess.pipe, # 儲存執行結果的正常資訊

stderr=subprocess.pipe) # 儲存執行結果的錯誤資訊

print('stdout : ',ret.stdout.read().decode('gbk'))

print('stderr : ',ret.stderr.read().decode('gbk'))

二、2.1tcp

server端

import socket

sk = socket.socket()

sk.bind(('127.0.0.1',8090))

sk.listen()

conn,addr = sk.accept()

while true:

cmd = input('cmd : ')

if cmd == 'q':

conn.send(cmd.encode('utf-8'))

break

conn.send(cmd.encode('utf-8'))

print('stdout : ',conn.recv(1024).decode('gbk'))

conn.close()

sk.close()

client端

import socket

import subprocess

sk = socket.socket()

sk.connect(('127.0.0.1',8090))

while true:

cmd = sk.recv(1024).decode('utf-8')

if cmd == 'q': break

res = subprocess.popen(cmd,shell=true,

stdout=subprocess.pipe,

stderr=subprocess.pipe)

sk.send(res.stdout.read())

sk.send(res.stderr.read())

sk.close()

2.2udp

server端

import socket

sk = socket.socket(type=socket.sock_dgram)

sk.bind(('127.0.0.1',8090))

msg,addr = sk.recvfrom(1024)

while true:

cmd = input('cmd : ')

if cmd == 'q':

sk.sendto(cmd.encode('utf-8'),addr)

break

sk.sendto(cmd.encode('utf-8'),addr)

print('stdout : ',sk.recvfrom(2048)[0].decode('gbk'))

print('stderr : ',sk.recvfrom(2048)[0].decode('gbk'))

sk.close()

client端

import socket

import subprocess

sk = socket.socket(type=socket.sock_dgram)

sk.sendto(b'111',('127.0.0.1',8090))

while true:

cmd = sk.recvfrom(1024)[0].decode('utf-8')

if cmd == 'q': break

res = subprocess.popen(cmd,shell=true,

stdout=subprocess.pipe,

stderr=subprocess.pipe)

sk.sendto(res.stdout.read()*100,('127.0.0.1',8090))

sk.sendto(res.stderr.read(),('127.0.0.1',8090))

sk.close()

遠端執行命令

遠端執行命令 這個分兩步,很簡單很實用。第一步,設定ssh免認證,免認證就是只不用密碼認證就可以直接登入,這在寫指令碼伺服器控制時特別有用。ssh keygen t rsa cd ssh ssh copy id xuexi01注 xuexi01是主機名,也可寫成ip,如192.168.2.11 第二...

遠端執行命令

伺服器 遠端執行命令 from socket import import subprocess ip port 127.0.0.1 8080 back log 5buffer size 1024tcp server socket af inet,sock stream tcp server.bind...

ssh遠端執行命令

使用ssh不僅可以登入到遠端的linux主機,還可以執行命令。如果是要登入到遠端linux主機,那麼使用下面的命令 ssh username remoteip example ssh hduser 192.168.0.1 這個將開啟乙個登入到遠端主機192.168.0.1的login shell如果...