Advertisement
Guest User

Untitled

a guest
Apr 27th, 2018
161
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.88 KB | None | 0 0
  1. # -*- coding: utf-8 -*-
  2.  
  3.  
  4. import xml.etree.ElementTree
  5. import time
  6. from time import gmtime, strftime
  7. import subprocess
  8. import paramiko
  9. from scp import SCPClient
  10.  
  11. vremya = strftime("%a, %d %b %Y %H:%M:%S")
  12. # Создание ssh клиента для подтягивания дампа через scp
  13. def createSSHClient(server, port, user, password):
  14.     client = paramiko.SSHClient()
  15.     client.load_system_host_keys()
  16.     client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
  17.     client.connect(server, port, user, password)
  18.     return client
  19.                    
  20. ssh = createSSHClient('192.168.2.117', 22, 'root', 'password')
  21. scp = SCPClient(ssh.get_transport())
  22. # Копируем
  23. scp.get(r'/home/vigruz/dump.xml', r'/etc/unbound/')
  24.  
  25. class Profiler(object):
  26.         def __enter__(self):
  27.             self._startTime = time.time()
  28.         def __exit__(self, type, value, traceback):
  29.             print  "Затрачено времени: {:.3f} sec".format(time.time() - self._startTime)
  30.  
  31. with Profiler() as p:
  32.     # Парсим только ip
  33.     file = xml.etree.ElementTree.parse('/etc/unbound/dump.xml').getroot()
  34.     ipconf = open('/etc/unbound/local.d/google.conf', 'w')
  35.     massiv = []
  36.     for result in file.iter('content'):
  37.          if result.get('blockType') == 'ip':
  38.             for addr in result.iter('ip'):
  39.                 zapis =  addr.text
  40.                 massiv.append(zapis)
  41.     massiv = list(set(massiv))
  42.     for zapis in massiv:
  43.         ipconf.write("private-address: " + zapis + "\n" )
  44.  
  45.     ipconf.close()
  46.     logfile = open('/etc/unbound/ip.log', 'a')
  47.     log = vremya + " В файл было записано " + str(len(massiv)) + " адресов."
  48.     logfile.write( log + "\n" )
  49.     logfile.close()
  50.  
  51. # Рестарт unbound
  52. command = "/usr/local/sbin/unbound-control reload"
  53. r = subprocess.Popen(command, shell = True)
  54. r.wait()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement