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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 on
22 /dev/mapper/VolGroup-lv_root   51606140 1518048   47466652   4% /
23 tmpfs                            510172       0     510172   0% /dev/shm
24 /dev/sda1                        495844   33461     436783   8% /boot
25 /dev/mapper/VolGroup-lv_home 2059640248  203016 1954813516   1% /home

  使用公钥连接

import paramiko

private_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_path
10 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.py
10 sftp.put(D:\\test1\\put.txt, /tmp/put.txt)
11 # 将remove_path 下载到本地 local_path
12 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全局解释器锁,线程,进程)的主要内容,如果未能解决你的问题,请参考以下文章

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

Python的平凡之路(13)

python 自动化之路 day 14

Python_oldboy_自动化运维之路_paramiko,mysql

Python之路第八篇:堡垒机实例以及数据库操作

Python之路第八篇:堡垒机实例以及数据库操作