仅以此纪念Python学习的开端,在戴总(
http://www.cndba.cn/dave
)的指导下,终于完成第一个Python 小工具的编写,基本了解Python 编写的步骤及方法。
实现功能:
为了实现192.168.1.0 同网段的其他主机一键关机的功能(前提是 username:root passwd;123456 一致密码 port : 22),执行这个脚本可以关掉192.168.1.0 同网段的所有主机。
代码如下:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
import sys
import time
import re
import paramiko
#from IPy import IP
#ip_ping函数 获取到的地址写入到ip.list文件里(python 在哪个目录执行就生成在哪个目录)
def ip_ping()(ipaddr):
#ipaddr = "192.168.1.120"
str = """ping """ + ipaddr + """ -c 4 """
str1 = os.popen(str).readlines()
str2 = "".join(str1).find("Unreachable")
if str2 == -1 :
file = open("ip.list", "a")
file.write(ipaddr+'/n')
file.close()
print ipaddr
else :
print "false"
#ssh_down()函数 实现读取ip.list文件中ip 地址列表 并ssh 远程主机并关闭
def ssh_down():
username="root"
port=22
password = "123456"
file = open("ip.list")
for line in file:
hostname = str(line .split("/t")[0])
#password = str(line .split("/t")[1]).strip()
#print "##################",hostname,"######################",password
s = paramiko.SSHClient()
s.set_missing_host_key_policy(paramiko.AutoAddPolicy())
s.connect(hostname,port,username,password)
cmd = 'shutdown -h now'
stdin,stdout,sterr=s.exec_command(cmd)
print stdout.read()
s.close()
file.close()
#ip_cycle() 函数实现循环获取1网段地址,并调用函数ip_ping()
def ip_cycle():
#ip = IP('192.168.56.0/24')
#ip=['192.168.56.64','192.168.56.65']
file = '/python/ip.list'
if os.path.exists(file):
os.remove(file)
for x in range(2,255,1):
y = "192.168.1." + str(x)
if y != '192.168.1.100':
ip_ping(y)
#脚本所在的主机IP 最后调用函数ip_ping 使之追加到最后才关闭当前脚本所在主机
ip_ping('192.168.1.100')
if __name__ =='__main__':
ip_cycle()
ssh_down()
版权声明:本文为博主原创文章,未经博主允许不得转载。