Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/python
- #author: peter (pjl@hpc.com.py)
- import email
- from email.MIMEText import MIMEText
- from email.MIMEMultipart import MIMEMultipart
- from email.MIMEBase import MIMEBase
- from email import encoders
- import mimetypes
- import smtplib
- import subprocess
- import re
- import os
- import sys
- import time
- import shutil
- dirproduccion = "/mnt/acosi/ARCHIVOS"
- pathbkp = "/tmp/bkp"
- prodsorter = "/tmp/sorter/dm"
- prod=re.compile("/mnt/acosi/ARCHIVOS")
- dats=re.compile(".*\.dat$")
- indi=re.compile(".*\.k.*?$")
- mem=re.compile(".*\.mem$")
- eje=re.compile(".*\.exe$")
- comando = "cp"
- parametros = "-v"
- def control():
- tiempoco = time.time()
- subprocess.call("lsof +D /media/usuarios/aco/sistemas/ARCHIVOS | egrep \".*\.exe$|.*\.EXE$\"",
- shell=True,
- stdout=open("/tmp/_Sistemasabiertos.log","w"),
- stderr=open("/tmp/errorlsoft.log","w"))
- tam = os.path.getsize("/tmp/_Sistemasabiertos.log")
- while tam > 0:
- subprocess.call("lsof +D /media/usuarios/aco/sistemas/ARCHIVOS | egrep \".*\.exe$|.*\.EXE$\"",
- shell=True,
- stdout=open("/tmp/_Sistemasabiertos.log","w"),
- stderr=open("/tmp/errorlsoft.log","w"))
- tam = os.path.getsize("/tmp/_Sistemasabiertos.log")
- tiempoac = time.time()
- diffloat = (tiempoac - tiempoco)
- difint = int(diffloat)
- if difint > 18300:
- informar('Sorter can\'t be done',
- '''Program's run's\n''',
- "/tmp/_Sistemasabiertos.log")
- sys.exit(1)
- def informar(situacion,cuerpo,abjunto):
- desde = "xxx@xxx"
- hasta = "xxx@xxx"
- asunto = situacion
- cuerpo = cuerpo
- abjunto = abjunto
- m = MIMEMultipart()
- m["To"] = hasta
- m["From"] = desde
- m["Subject"] = asunto
- m.attach(MIMEText(cuerpo))
- msg = MIMEBase('application', 'octet-stream')
- msg.set_payload(open(abjunto, 'rb').read())
- encoders.encode_base64(msg)
- msg.add_header('Content-Disposition', 'attachment; filename="%s"' % os.path.basename(abjunto))
- m.attach(msg)
- s = smtplib.SMTP("smtp.gmail.com", 587)
- s.set_debuglevel(1)
- s.ehlo()
- s.starttls()
- s.ehlo()
- s.login(desde,"xxx")
- s.sendmail(desde, hasta, m.as_string())
- s.close()
- def crearseguro():
- try:
- shutil.copytree(dirproduccion, "/tmp/bkp")
- except EnvironmentError, e:
- escritura = "can not copy %s a /tmp/bkp \n %s" % (dirproduccion, e)
- log = open("/tmp/errorcrearseguro.log", "a")
- log.write(escritura)
- log.close()
- informar("Sorter fail",
- '''Fail backup of the production data''',
- "/tmp/errorcrearseguro.log")
- sys.exit(1)
- else:
- escritura = "%s --> /tmp/bkp \n" % dirproduccion
- log = open("/tmp/crearseguro.log", "a")
- log.write(escritura)
- log.close()
- def crearpaths(dirpath):
- if not os.path.isdir(dirpath):
- os.makedirs(dirpath)
- def creararbol(paths):
- if prod.search(paths):
- path = paths
- for dirpath, dirname, arcnam in os.walk(path):
- for arc in arcnam:
- if dats.search(arc.lower()):
- dirs = "/tmp/sorter/dm" + dirpath
- crearpaths(dirs)
- archivo = dirpath + "/" + arc
- try:
- shutil.copy(archivo, dirs)
- except EnvironmentError, e:
- escritura = "can not copy %s a %s \n %s" % (archivo, dirs, e)
- log = open("/tmp/errorcreararboldats.log", "a")
- log.write(escritura)
- log.close()
- informar("fail .dat copy",
- '''sorter fails in dat copy''',
- "/tmp/errorcreararboldats.log")
- sys.exit(1)
- else:
- escritura = "%s --> %s \n" % (archivo, dirs)
- log = open("/tmp/creararboldats.log", "a")
- log.write(escritura)
- log.close()
- elif indi.search(arc.lower()):
- dirs = "/tmp/sorter/k" + dirpath
- crearpaths(dirs)
- archivo = dirpath + "/" + arc
- try:
- shutil.copy(archivo, dirs)
- except EnvironmentError, e:
- escritura = "can not copy %s a %s \n %s" % (archivo, dirs, e)
- log = open("/tmp/errorcreararbolk00.log", "a")
- log.write(escritura)
- log.close()
- informar("fail K data copy",
- '''Fail of the k data''',
- "/tmp/errorcreararbolk00.log")
- sys.exit(1)
- else:
- escritura = "%s --> %s \n" % (archivo, dirs)
- log = open("/tmp/creararbolk00.log", "a")
- log.write(escritura)
- log.close()
- elif mem.search(arc.lower()):
- dirs = "/tmp/sorter/dm" + dirpath
- crearpaths(dirs)
- archivo = dirpath + "/" + arc
- try:
- shutil.copy(archivo, dirs)
- except EnvironmentError, e:
- escritura = "can copy %s a %s \n %s" % (archivo, dirs, e)
- log = open("/tmp/errorcreararbolmem.log", "a")
- log.write(escritura)
- log.close()
- informar("Fail .mem files",
- '''Sorter fails in the .mem files copy''',
- "/tmp/errorcreararbolmem.log")
- sys.exit(1)
- else:
- escritura = "%s --> %s \n" % (archivo, dirs)
- log = open("/tmp/creararbolmem.log", "a")
- log.write(escritura)
- log.close()
- elif eje.search(arc.lower()):
- dirs = "/tmp/sorter/e" + dirpath
- crearpaths(dirs)
- archivo = dirpath + "/" + arc
- try:
- shutil.copy(archivo, dirs)
- except EnvironmentError, e:
- escritura = "can not copy %s a %s \n %s" % (archivo, dirs, e)
- log = open("/tmp/errorcreararboleje.log", "a")
- log.write(escritura)
- log.close()
- informar("Sorter Fail",
- '''Can copy exe files''',
- "/tmp/errorcreararboleje.log")
- sys.exit(1)
- else:
- escritura = "%s --> %s \n" % (archivo, dirs)
- log = open("/tmp/creararboleje.log", "a")
- log.write(escritura)
- log.close()
- else:
- ejecutarSor(prodsorter)
- def ejecutarSor(dirsorter):
- for dirpath, dirname, arcnam in os.walk(dirsorter):
- if dirpath == "/tmp/sorter/dm/ARCHIVOS/":
- pass
- else:
- dirpath = dirpath.replace("/","\\\\\\")
- comando = "dosemu -input \"g:\\r\" -input \" cd " + dirpath + " \\r\" -input \" dir \\r\" -input \" csrt.exe \*.DAT /v \\r\" -input \" exitemu \\r\""
- subprocess.call(comando,shell=True)
- if __name__ == "__main__":
- control()
- crearseguro()
- creararbol(dirproduccion)
- creararbol(prodsorter)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement