import time
import socket
import threading def device_info():
ip_list = []
name_list = []
user_list = []
passwd_list = []
f = open('devices_list.txt',encoding='UTF-8')
for line in f.readlines():
line_s = line.split()
device_ip = line_s[0]
device_name = line_s[1]
username = line_s[2]
passwd = line_s[3]
ip_list.append(device_ip)
name_list.append(device_name)
user_list.append(username)
passwd_list.append(passwd)
f.close()
return ip_list,name_list,user_list,passwd_list def ssh_f(ip,name,user,passwd):
data = time.strftime('%Y-%m-%d')
ssh_client = paramiko.SSHClient()
ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh_client.connect(hostname=ip, username=user, password=passwd)
print('成功连接', ip, name,'\n')
cmd_file = open('cmd.txt', 'r')
cmds = cmd_file.readlines()
log = open(r'D:\BaiduNetdiskDownload\test\巡检日志\\' + ip + name + data + '.txt', 'a')
command = ssh_client.invoke_shell()
command.send('terminal length 0\n') # 取消单屏显示
for cmd in cmds:
command.send(cmd+'\n')
time.sleep(1)
output = command.recv(65535)
log.write(output.decode('UTF-8'))
print(ip + '日志载入成功'+'\n')
ssh_client.close()
log.close() def main():
device_authentication_failed_list = []
device_not_reachable_list = []
ip_list,name_list,user_list,passwd_list = device_info()
for ip,name,user,passwd in zip(ip_list,name_list,user_list,passwd_list): # 遍历多个列表可以用zip
try:
a = threading.Thread(target=ssh_f,args=(ip,name,user,passwd))
a.start()
except paramiko.ssh_exception.AuthenticationException:
print(name + '(' + ip + ')' + '身份验证登录失败..')
device_authentication_failed_list.append(ip)
except socket.error:
print(name + '(' + ip + ')' + ' 网络无法访问..')
device_not_reachable_list.append(ip)
time.sleep(5)
print('\n以下设备身份验证登录失败: ')
if device_authentication_failed_list == []:
print('nothing')
else:
for i in device_authentication_failed_list:
print(i)
print('\n网络无法访问以下设备:')
if device_not_reachable_list == []:
print('nothing')
else:
for i in device_not_reachable_list:
print(i) if __name__ == '__main__':
main()

最新文章

  1. Asp.Net MVC3 简单入门详解过滤器Filter(转)
  2. Python中的list和tuple
  3. python安装supervisor
  4. Spring Framework------>version4.3.5.RELAESE----->Reference Documentation学习心得----->Spring Framework概述
  5. 汉诺塔(河内塔)算法 ----C语言递归实现
  6. canvas像素操作
  7. 【HDU 5387】Clock
  8. Java:标示符 基本数据类型
  9. 搭建hdfs服务器集群的搭建+trash
  10. 浏览器渲染页面过程描述,DOM编程技巧以及重排和重绘。
  11. oracle记录各登陆主机用户名,登陆ip,所执行的命令
  12. ABP Zero源码
  13. Java之面向对象例子(二)
  14. Java连接数据库完整代码 查找和插入
  15. MII、RMII、GMII接口的详细介绍【转】
  16. 【Keil5 MDK】armar工具的基本用法(armar --help)
  17. 4.3 使用 SQL 语句操作数据框
  18. 一、HTML概述 二、web相关的概念 三、HTML的常用标签
  19. poj 3685 二分
  20. 2017-2018-1 20155330《信息安全技术》实验二——Windows口令破解

热门文章

  1. Logstash:使用ELK堆栈进行API分析
  2. Kibana使用仪表盘汇总数据(Dashboard)
  3. 解析库beautifulsoup
  4. NSIS Studio2.1汉化版
  5. VMware vSphere 8.0 正式版下载
  6. SpringBoot 自定义注解 实现多数据源
  7. vue2使用组件进行父子互相传值的sync语法糖方法和原生方法
  8. 通过URL保存文件
  9. VScode将代码提交到远程服务器、同时解决每次提交都要输入密码的问题(这里以gitee为例子)
  10. Python学习三天计划-3