python paramiko模块和多线程讲解

时间:2022-12-31 13:01:08

1、paramiko 实现ssh 登录

import paramiko

# 实现ssh登录
ssh_client = paramiko.SSHClient()
ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 连接远程主机

ssh_client.connect(hostname='172.30.2.129',port=22,username='root',password='cy201061')
stdin,stdout,stderr = ssh_client.exec_command("free -m ")
res,err = stdout.read(),stderr.read()
result = res if res else err
print(result.decode())
ssh_client.close()

2、paramiko  实现简单的文件传输

#实现上传
transport = paramiko.Transport("172.30.2.129",22)
transport.connect(username="root",password="cy201061")
fptclient = paramiko.SFTPClient.from_transport(transport)
fptclient.put('11.txt','/tmp/test.txt')
fptclient.get('/root/.ssh/id_rsa','prive.txt')

3、paramiko   基于秘钥的免秘钥传输

# Author : xiajinqi

import paramiko
ssh_client = paramiko.SSHClient()
private_key = paramiko.RSAKey.from_private_key_file('prive.txt')


ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh_client.connect(hostname='172.30.2.130',port=22,username='root',pkey=private_key)

stdin,stdout,stderr = ssh_client.exec_command("free -m ")
res,err = stdout.read(),stderr.read()
res = res if res else err
print(res.decode())
ssh_client.close()

 

4、线程和进程的区别

1、进程是资源管理调度的集合,进程要操作cpu,必须先创建一个线程
2、线程是 一串指令集合,是cpu能够调度的最小的单位。
3、同一个进程的不同线程共享同一块内存。不同进程之间内存之间是相互隔离的。即进程之间除父进程可以调用子进程意外不可以相互调用,线程之间可以相互调用共享数据。
4、一个进程至少有一个主线程,主线程可以创建多个子线程。
线程是平台的。A线程创建B线程,A不存在以后,B依旧可以继续运行,B可以继续创建其他线程。创建以后相互平台、独立的。
5、先有进程再有线程。 每个进程都有一个独立PID,内存是独立的。
6、创建新的线程很简单。创建新的进程需要copy父进程进行一次克隆(比喻内存)

 5、简单多线程实例

import threading

def run(tt):
    print("hello world")

t1 = threading.Thread(target=run,args=('t1',))
t2 = threading.Thread(target=run,args=('t2',))

t1.run()
t2.run()

6、多线程时间测试案例

import threading
import time

def run(i):
    print("test %s"%(i))
    time.sleep(2)


for i in range(1,50):
    t1 = threading.Thread(target=run,args=(i,))
    t1.start()


print("end")


E:\Users\xiajinqi\PycharmProjects\Atm\venv\Scripts\python.exe E:/Users/xiajinqi/PycharmProjects/Atm/test3.py
test 1
test 2
test 3
test 4
test 5
test 6
test 7
test 8
test 9
test 10
test 11
test 12
test 13
test 14
test 15
test 16
test 17
test 18
test 19
test 20
test 21
test 22
test 23
test 24
test 25
test 26
test 27
test 28
test 29
test 30
test 31
test 32
test 33
test 34
test 35
test 36
test 37
test 38
test 39
test 40
test 41
test 42
test 43
test 44
test 45
test 46
test 47
test 48
test 49
end

Process finished with exit code 07/