600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > Python使用Paramiko模块编写脚本进行远程服务器操作

Python使用Paramiko模块编写脚本进行远程服务器操作

时间:2019-10-25 15:21:07

相关推荐

Python使用Paramiko模块编写脚本进行远程服务器操作

后端开发|Python教程

Python,Paramiko

后端开发-Python教程

简介:

paramiko是python(2.2或更高)的模块,遵循SSH2协议实现了安全(加密和认证)连接远程机器。

安装所需软件包:

/pub/dlitz/crypto/pycrypto/pycrypto-2.5.tar.gz

/paramiko/download/paramiko-1.7.7.1.tar.gz

新闻阅读app源码,vscode 插件微软教程,ubuntu 软件商城,tomcat处理静态文件,顶尖爬虫,上海 php 兼职,哪里有seo代理平台,简易购物网站html代码,哪里有免费的网站模板lzw

tar zxvf pycrypto-2.5.tar.gzcd pycrypto-2.5python setup.py buildpython setup.py installtar zxvf paramiko-1.7.7.1.tar.gzcd paramiko-1.7.7.1python setup.py buildpython setup.py install

网狐源码烂,vscode输入什么代码运行,Ubuntu没有deb,tomcat压测tps,爬虫动态渲染,php json 空格,安国关键词seo排名,手机版娱乐网站源码,新闻信息发布系统前台模板下载lzw

脚本简单编写:

管理单台服务器:

富贵鸡支付源码,ubuntu获取su权限,1万个用户tomcat,爬虫采集热门,php研究方向,东城seo优化关键词哪家好lzw

脚本一:查询172.16.22.23磁盘使用情况

#!/usr/bin/python import paramiko hostname="172.16.22.23" port=22 username="root" password="larryroot" if __name__=="__main__":s=paramiko.SSHClient()s.set_missing_host_key_policy(paramiko.AutoAddPolicy())s.connect(hostname,port,username,password)stdin,stdout,sterr=s.exec_command("df -Th")print stdout.read()s.close()

脚本二:在远程服务器上执行相应命令

#!/usr/bin/python #by larry #/01/30 import sys import paramiko hostname=sys.argv[1] command = " ".join(sys.argv[2:]) port=22 username="root" password="larryroot" if __name__=="__main__":s=paramiko.SSHClient()s.set_missing_host_key_policy(paramiko.AutoAddPolicy())s.connect(hostname,port,username,password)stdin,stdout,sterr=s.exec_command(command)print stdout.read()s.close()

使用方法:

python single1.py ip地址 命令[root@localhost ~]# python single1.py 172.16.22.23 df -TH

Filesystem Type Size Used Avail Use% Mounted on/dev/sda2 ext3 13G 6.0G 5.7G 52% //dev/sda1 ext3 104M 12M 87M 13% /boottmpfs tmpfs 61M 0 61M 0% /dev/shm/dev/sda4 ext3 7.6G 465M 6.8G 7% /data/dev/sdb1 ext3 32G 5.9G 25G 20% /autocd[root@localhost ~]# python single1.py 172.16.22.23 free -mtotal used free shared buffers cachedMem:114 112202635-/+ buffers/cache:5064Swap:10270 1027

脚本三:管理多台服务器:批量查询ip列表中对应服务器的磁盘使用情况

#!/usr/bin/python #by larry #/01/30 import paramiko port=22 username="root" file=open("ip.list") for line in file:hostname=str(line.split("\t")[1])password=str(line.split("\t")[4]).strip()print "##########################",hostname,"########################"s=paramiko.SSHClient()s.set_missing_host_key_policy(paramiko.AutoAddPolicy())s.connect(hostname,port,username,password)stdin,stdout,sterr=s.exec_command("df -Th")print stdout.read()s.close() file.close()

用法:

[root@localhost ~]# python ssh.py

############################ 172.16.22.22 ########################Filesystem Type Size Used Avail Use% Mounted on/dev/sda2 ext3 12G 5.6G 5.3G 52% //dev/sda1 ext3 99M 12M 83M 13% /boottmpfs tmpfs 58M 0 58M 0% /dev/shm/dev/sda4 ext3 7.1G 443M 6.3G 7% /data/dev/sdb1 ext3 30G 5.5G 23G 20% /autocd############################ 172.16.22.23 ########################Filesystem Type Size Used Avail Use% Mounted on/dev/sda2 ext3 15G 2.6G 11G 19% //dev/sda1 ext3 99M 12M 82M 13% /boottmpfs tmpfs 60M 0 60M 0% /dev/shm/dev/sda4 ext3 33G 377M 31G 2% /data

ip.list文件内容:

dx 172.16.22.22 22 root larryrootwt 172.16.22.23 22 root larryroot

脚本四:类似于脚本二,在所有远程服务器上执行相应命令

#!/usr/bin/python #by larry #/01/30 import paramiko import sys port=22 username="root" command = " ".join(sys.argv[1:]) file=open("ip.list") for line in file:hostname=str(line.split("\t")[1])password=str(line.split("\t")[4]).strip()print "##################",hostname,"######################"s=paramiko.SSHClient()s.set_missing_host_key_policy(paramiko.AutoAddPolicy())s.connect(hostname,port,username,password)stdin,stdout,sterr=s.exec_command(command)print stdout.read()s.close() file.close()

用法:

python ssh.py 命令

简单整理到这里通过python的paramiko模块可以很方便的管理服务器,文件的上传下载后续会整理出来。

SSH

下面是通过ssh的dsa或rsa公钥验证批量登录服务器执行命令:

#!/usr/bin/python #/02/02 by larry import paramiko import sys,os port=22 username="larry" key_file="~/.ssh/authorized_keys" know_host="/home/larry/.ssh/known_hosts" command=" ".join(sys.argv[1:]) ####获取命令行参数 file=open("ip.list") for line in file:hostname=str(line.split(" ")[1]) ####截取ip字段print "#####################################",hostname,"###############################################"s=paramiko.SSHClient()s.set_missing_host_key_policy(paramiko.AutoAddPolicy())s.load_system_host_keys(know_host)s.connect(hostname,port,username,key_file)stdin,stdout,sterr=s.exec_command(command)print stdout.read().strip()s.close() file.close()

执行python脚本:

python sshkey.py df -h

################172.16.22.22########################FilesystemSize Used Avail Use% Mounted on/dev/mapper/VolGroup00-LogVol0014G 3.5G 9.7G 27% //dev/mapper/VolGroup00-data116G 47G 64G 43% /data/dev/cciss/c0d0p1 99M 13M 82M 14% /boottmpfs 5.9G 0 5.9G 0% /dev/shm

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。