Advertisement
diegors

Migrar_Qmail_A_Zimbra_IMAP

Dec 28th, 2011
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.90 KB | None | 0 0
  1. #!/usr/bin/python
  2. # -*- coding: utf-8 -*-
  3.    
  4. ## Script para poder migrar de manera automatizada las cuentas de email con imapsync ##
  5.    
  6. import os
  7. import sys
  8. from subprocess import Popen, PIPE
  9. from time import strftime
  10.    
  11. # Para genera un log de la ejecucción de imapsync
  12. log = True
  13.    
  14. # Comprobamos la existencia de la lista de usuarios a migrar
  15. # Nota: esta lista debe ser un usuario por línea. Ej: email@dominio.com MiContraseña
  16. try:
  17.     userList = open(\"userlist\", \"r\")
  18. except:
  19.     print 'El archivo con la lista de Usuarios no existe.'
  20.     sys.exit()
  21.    
  22. # Comprobamos si la aplicación imapsync está instalado
  23. try:
  24.     os.path.exists(\"/usr/bin/imapsync\")
  25. except:
  26.     print 'Necesita instalar la aplicación \"imapsync\".'
  27.     sys.exit()
  28.    
  29. # Path del ejecutable de imapsync
  30. command = \"/usr/bin/imapsync\"
  31. # Argumentos de imapsync
  32. args = \" --host1 %s --user1 %s --password1 %s --host2 %s --user2 %s --password2 %s --subscribed --subscribe\"
  33. # IP servidor IMAP viejo
  34. host1 = \"192.168.15.1\"
  35. # IP servidor IMAP nuevo
  36. host2 = \"192.168.15.5\"
  37.    
  38. # Leemos el archivo de la lista de usuarios y ejecutamos imapsync por cada uno de ellos
  39. for line in userList.readlines():
  40.     imapsync = Popen(command + args % (host1, line.split(\" \")[0], line.split(\" \")[1].rstrip('\n'),
  41.         host2, line.split(\" \")[0], line.split(\" \")[1].rstrip('\n')), stdout=PIPE, shell=True)
  42.     print '%s --- Sincronizando la cuenta \"%s\"...' % (strftime(\"%d-%m-%Y %H:%M:%S\"), (line.split(\" \")[0]))
  43.    
  44.     # Si el log está habilitado, lo escribimos en un archivo
  45.     if log:
  46.         stdout = imapsync.stdout.read()
  47.         logFile = open(\"imapsync.log\", \"a\")
  48.         logFile.write('%s --- Sincronizando la cuenta \"%s\"... \n\n %s \n\n' % (strftime(\"%d-%m-%Y %H:%M:%S\"),
  49.             (line.split(\" \")[0]), stdout))
  50.         logFile.close()
  51.    
  52.     # De lo contrario, lo mostramos por pantalla
  53.     else:
  54.         print imapsync.stdout.read()
  55.    
  56. # Cerramos el archivo
  57. userList.close()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement