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/