标签:
一、paramiko
二、进程、与线程区别
三、python GIL全局解释器锁
四、线程
一、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全局解释器锁,线程,进程)
标签:
原文地址:http://www.cnblogs.com/lei0213/p/5885328.html