Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/04/2011, 12:49
SamuraiBlanco
 
Fecha de Ingreso: marzo-2010
Ubicación: Mérida, Venezula
Mensajes: 73
Antigüedad: 14 años, 1 mes
Puntos: 0
Programa para eliminar todos los archivos vinculados a postgresql

Hice este programa para eliminar todos los archivos vinculados a postgresql debido a un problema con la instalación, pero evitando que borre los archivos python y los archivos dentro de la carpeta personal del sistema.

La pregunta es ¿Que se le puede agregar? para hacerlo más efectivo.

Código Python:
Ver original
  1. #/usr/bin/env python
  2.  
  3. """
  4. Desinstalador de postgresql
  5. """
  6. from os import remove, system
  7. from time import sleep
  8. from os.path import isdir, isfile
  9. import subprocess
  10.  
  11. def Deleteall(second_list_postgres_clean, firts_list_psql_clean):
  12.     obviados=0
  13.     eliminados=0
  14.     noexiste=0
  15.     for lista in (second_list_postgres_clean, firts_list_psql_clean):
  16.         for element in lista:
  17.             element=str(element)
  18.             if isdir(element) or isfile(element):
  19.                 print "Eliminando elemento " + element
  20.                 if element[0:12]=='/home/victor' or element[0:19]=='/usr/lib/pymodules/':
  21.                     print "Elemento obviado " + element
  22.                     obviados=obviados+1  
  23.                 else:
  24.                     sleep(1)
  25.                     #remove(element)
  26.                     print "Eliminado " + element
  27.                     eliminados=eliminados+1
  28.             else:
  29.                 print "El elemento no existe " + element
  30.                 noexiste=noexiste+1
  31.  
  32.     if isdir('/home/victor/.psql_history'):
  33.         print "Eliminacion forzada /home/victor/.psql_history"  
  34.         remove('/home/victor/.psql_history')
  35.         print "Eliminado"
  36.  
  37.     print "Todos los elementos fueron borrados"
  38.     print "Actualizando catalogo"
  39.     system('updatedb')
  40.     print "Elementos inexistentes " +str(noexiste)
  41.     print "Elementos obviados " +str(obviados)
  42.     print "Elementos Eliminados "+str(eliminados)
  43.     print "Actualizacion terminada, ejecucion terminada"
  44.  
  45. elements_psql_tuple=subprocess.Popen("/usr/bin/env locate "+ 'psql', shell=True, \
  46.                     stdout=subprocess.PIPE).communicate()
  47. string_to_clean=str(elements_psql_tuple)
  48.  
  49. firts_list_psql_clean=string_to_clean.replace("[","").replace("'","").replace("]","").replace("(","").replace(")","").split('\\n')
  50.  
  51. elements_postres_tuple=subprocess.Popen("/usr/bin/env locate "+ 'postgres', shell=True, \
  52.                     stdout=subprocess.PIPE).communicate()
  53.  
  54. string_to_clean=str(elements_postres_tuple)
  55.  
  56. second_list_postgres_clean=string_to_clean.replace("[","").replace("'","").replace("]","").replace("(","").replace(")","").split('\\n')
  57.  
  58. elements=second_list_postgres_clean.extend(firts_list_psql_clean)
  59.  
  60.  
  61. Deleteall(second_list_postgres_clean, firts_list_psql_clean)

Ahorita le estoy agregando manejo de archivos para crear un log con los archivos borrados, los obviados, y los que estaban inexistentes. Lo agregare también al terminar.