首页 > 代码库 > Python之路-python(paramiko,进程和线程的区别,GIL全局解释器锁,线程,进程)

Python之路-python(paramiko,进程和线程的区别,GIL全局解释器锁,线程,进程)

一、paramiko

二、进程、与线程区别

三、python GIL全局解释器锁

四、线程

    1. 语法
    2. join
    3. 线程锁之Lock\Rlock\信号量
    4. 将线程变为守护进程
    5. Event事件 
    6. queue队列
    7. 生产者消费者模型
    8. Queue队列

  一、paramiko

  用于远程连接并执行简单的命令

 

  使用用户名密码连接:

 1 import paramiko 2  3 # 创建SSH对象 4 ssh = paramiko.SSHClient() 5 # 允许连接不在know_hosts文件中的主机 6 ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) 7 # 连接服务器 8 ssh.connect(hostname=172.16.5.163, port=22, username=root, password=111111) 9 10 # 执行命令11 stdin, stdout, stderr = ssh.exec_command(df)12 # 获取命令结果13 result = stdout.read()14 print(result.decode())15 16 # 关闭连接17 ssh.close()18 19 20 结果21 Filesystem                    1K-blocks    Used  Available Use% Mounted on22 /dev/mapper/VolGroup-lv_root   51606140 1518048   47466652   4% /23 tmpfs                            510172       0     510172   0% /dev/shm24 /dev/sda1                        495844   33461     436783   8% /boot25 /dev/mapper/VolGroup-lv_home 2059640248  203016 1954813516   1% /home

  使用公钥连接

import paramikoprivate_key = paramiko.RSAKey.from_private_key_file(id_rsa.txt)#创建SSH对象ssh = paramiko.SSHClient()#允许连接不在know_host文件中的主机ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())#连接服务器ssh.connect(hostname=172.16.5.163,port=22,username=root,pkey=private_key)#执行命令stdin,stdout,stderr = ssh.exec_command(df -h)#获取命令结果restult = stdout.read()#打印执行结果print(restult.decode())#关闭连接ssh.close()

技术分享

 

  SFTPClient使用用户名密码完成上传下载

 1 import paramiko 2  3 transport = paramiko.Transport((172.16.5.163,22)) 4 transport.connect(username=root,password=111111) 5  6 sftp = paramiko.SFTPClient.from_transport(transport) 7 # 将location.py 上传至服务器 /tmp/test.py 8 sftp.put(D:\\test1\\put.txt, /tmp/put.txt) 9 # 将remove_path 下载到本地 local_path10 sftp.get(/tmp/get.txt, D:\\test1\\get.txt)11 12 transport.close()

 

  SFTPClient使用公钥完成上传下载

 1 import paramiko 2  3 private_key = paramiko.RSAKey.from_private_key_file(id_rsa.txt) 4  5 transport = paramiko.Transport((172.16.5.163, 22)) 6 transport.connect(username=root, pkey=private_key ) 7  8 sftp = paramiko.SFTPClient.from_transport(transport) 9 # 将location.py 上传至服务器 /tmp/test.py10 sftp.put(D:\\test1\\put.txt, /tmp/put.txt)11 # 将remove_path 下载到本地 local_path12 sftp.get(/tmp/get.txt, D:\\test1\\get.txt)13 14 transport.close()

  二、进程、与线程区别

  线程:是操作系统的最小调度单元,一堆指令的集合。

  进程:操作CPU,必须先创建一个线程

进程和线程的区别启动一个线程比启动一个进程快,运行速度没有可比性。先有一个进程然后才能有线程。1、进程包含线程2、线程共享内存空间3、进程内存是独立的(不可互相访问)4、进程可以生成子进程,子进程之间互相不能互相访问(相当于在父级进程克隆两个子进程)5、在一个进程里面线程之间可以交流。两个进程想通信,必须通过一个中间代理来实现6、创建新线程很简单,创建新进程需要对其父进程进行克隆。7、一个线程可以控制或操作同一个进程里面的其它线程。但进程只能操作子进程。8、父进程可以修改不影响子进程,但不能修改。

 

Python之路-python(paramiko,进程和线程的区别,GIL全局解释器锁,线程,进程)