小豆浆 小米网运维题解答十九 www.xdoujiang.com

  • A+
所属分类:python实战
  1. 脚本比较简单 不写解释了
  2. #!/usr/bin/python
  3. # -*- coding: utf-8 -*-
  4. #--------------------------------------------------
  5. #Author:gongzheng
  6. #Email:85646830@163.com
  7. #FileName:11.py
  8. #Function: 
  9. #Version:1.0 
  10. #Created:2017-09-08
  11. #platform:python2.75 centos7
  12. #--------------------------------------------------
  13. import re
  14. import fileinput
  15. import os
  16. import sys
  17. import paramiko
  18. import time
  19. from datetime import datetime
  20. t1 = datetime.now()
  21. Host = "host.txt"
  22. Cmd = "cmd.txt"
  23. Port = 22
  24. User = "root"
  25. Password = "111111"
  26. i = 0
  27. Timeout = 5
  28. if os.path.isfile(Host) and os.path.isfile(Cmd):
  29.     print "%s and %s exists,you can continue" % (Host,Cmd)
  30. else:
  31.     print "%s or %s is lost,please check!" % (Host,Cmd)
  32.     sys.exit()
  33. Ip = "cat %s|grep '192.168'|wc -l" % Host
  34. Ipnum = os.popen(Ip).read().strip()
  35. s = paramiko.SSHClient()
  36. s.load_system_host_keys()
  37. s.set_missing_host_key_policy(paramiko.AutoAddPolicy())
  38. for line in fileinput.input(Host,inplace=0):
  39.     if re.search("192.168",line):
  40.         i += 1
  41.         Host = line.strip()
  42.         t = paramiko.Transport((Host,Port))
  43.         t.connect(username=User,password=Password)
  44.         s.connect(Host,Port,User,Password,timeout=Timeout)
  45.         f = open(Cmd)
  46.         while True:
  47.               Cmdline = f.readlinereadline()
  48.               if len(Cmdline) == 0:
  49.               break
  50.               stdin,stdout,stderr = s.exec_command(Cmdline)
  51.               Cmdresult = stdout.read(),stderr.read()
  52.               for j in Cmdresult:
  53.                   print "\033[32m %s \033[0m\n" % j,
  54.         f.close()
  55.         print "\x1B[0;33m %d/%d %s\x1B[0m" % (int(i),int(Ipnum),line)
  56.         m = i
  57.     else:
  58.         pass
  59. print "\033[32m allnum %d \033[0m\n" % int(m)
  60. print "#"*80
  61. s.close()
  62. t2 = datetime.now()
  63. total = t2 - t1
  64. print 'Total Time:',total
  65. 小豆浆 小米网运维题解答十九 www.xdoujiang.com
  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: