copiar directorios 2 OK!!

Jon Bengoetxea jon en dunsoft.com
Mie Oct 16 12:32:23 CEST 2002


Pues si compañeros, tal y como han comentado Hernan y Jose Manuel, tema
de comillas,lo he probado y funciona d.p.m.:)) Pues eso intentare
mejorar el tema con el resto de consejos que se han mandado.

Gracias.bye
El mié, 16-10-2002 a las 10:00, Jon Bengoetxea escribió:
> 
> Hola a tod en s.
> Me explico mejor....y de paso os paso el script.
> 
> Me pasa una cosa curiosa, cuando creo una lista del contenido del disco
> de un servidor NT remoto:
> 
> disco_servidor=['Archivos de programa','WINNT',.......]
> 
> y lo meto en un bucle que me copia dichos directorios y ficheros a un
> disco local, me intenta copiar por ejemplo el primer elemento de la
> lista de esta forma:
> 
> copydir Archivos
> copydir de
> copydir programa
> 
> cuando lo valido seria  
> 
> copydir Archivos de programa
> 
> Logicamente me salta un error que me indica que no existen dichos
> directorios.
> 
> El comando copydir de linux(del paquete mirrordir) lo declaro en una variable.
> cmd_copia='copydir '
> 
> y luego lo lanzo en el bucle de copia con os.system()
> 
> for copia in lista_dir:
> 	os.system('%s -v /mnt/%s %s'%(cmd_copia,copia,destino_dir[dia_seleccionado]))
> Este bucle me copia el contenido del disco remoto en un disco local en el dia que corresponde.	
> 
> Sabe alguien porque me hace esto??
> 
> Gracias, bye
> 
> Aqui teneis el script para los curiosos y para los supernovatos como yo, e incluso puede que a alguien le sirva, tener en cuenta que me falla lo indicado mas arriva. 
> 
> Espero sugerencias:
> 
> #!/usr/bin/env python2.2
> 
> #Script que permite crear una copia de seguridad de tu sistema local o remoto#
> #-------------------------->metax 2002 Zybertxapel<----------------------------------#
> #Este script solo se puede ejecutar como root y depende de mirrordir y samba(si quieres hacer copias remotas de NT/2000)
> #La forma de ejecutarlo es ---- muback <numero que corresponde al dia > o sea si ponemos muback 0, nos copiara lo que este montado en /mnt en el directorio 
> #/COPIAS/LUNES, si ponemos muback 2 copiaremos en /COPIAS/MARTES................... . . . . . . . . . . . . .  .  .  .  .  .   .   .   .   .   .   .        .         .            .      
> #Podemos lanzar muback manualmente o poniendolo en el cron.
> 
> #importamos algunos modulos.
> import sys, os, commands
> 
> if len(sys.argv) <> 2:
> 	print '\nDebes introducir el argumento de forma correcta\n\nmuba --help, muba -h\n\n'
> 	sys.exit()
> 
> # Imprime la ayuda.....
> try:
> 	if (sys.argv[1] == '--help') or (sys.argv[1] == '-h'):
> 		print '\nUso: muback <numero correspondiente dia de la semana>'
> 		print '\nCon muback podras crear copias de seguridad locales o remotas'
> 		print '\n0 --> Lunes\n1 --> Martes\n2 --> Miercoles\n3 --> Jueves\n4 --> Viernes\n5 --> Sabado\n6 --> Domingo\n' 
> 		sys.exit()
> 	elif (sys.argv[1] == '--version') or (sys.argv[1] == '-v'):
> 		print '\nmuback version 0.1 Zybertxapel(2002)'
> 		print '\n14 Octubre  19:40:35 2002\n'
> 		sys.exit()
> except IndexError:
> 	pass
> #Definimos comandos y variables
> montar='smbmount //servidor/discoC /mnt -o username=administrador,password=hola'
> 
> #El directorio COPIAS esta montado en una particion local y con los directorios de los dias de la semana
> destino_dir=['/COPIAS/LUNES','/COPIAS/MARTES','/COPIAS/MIERCOLES','/COPIAS/JUEVES','/COPIAS/VIERNES','/COPIAS/SABADO','/COPIAS/DOMINGO']
> 
> #Si quieres hacer copias de tus datos  en local seria por ejemplo--->montar='mount /dev/sdb1 /COPIAS'
> desmontar='umount /mnt'
> 
> #Variable comando copia(mirar mirrordir)
> cmd_copia='copydir '
> 
> #Montar
> os.system(montar)
> 
> #Creamos una lista del contenido de la raiz del disco remoto
> lista_dir=os.listdir('/mnt')
> 
> #Lista de los directorios y ficheros que no quiero que me copie
> no_copy=['pagefile.sys','RECYCLER','TEMP','WINNT','System Volume Information']
> 
> #Depuramos la lista quitando los directorios que no quiero que me copie y creando una lista final.
> for depurado in no_copy:#Excluimos los directorios o ficheros de la lista final.
> 	lista_dir.remove(depurado)
> 
> # Identificamos el dia segun el argumento que le pasemos a 'muba' y creamos las variables de destino(lunes,martes,etc....)
> num_elemen_dest=len(destino_dir)
> for dia_lista in range(num_elemen_dest):
> 	if (sys.argv[1] >= '7'):
> 		print "\n0 --> Lunes\n1 --> Martes\n2 --> Miercoles\n3 --> Jueves\n4 --> Viernes\n5 --> Sabado\n6 --> Domingo\nmuba --help o muba -h para la ayuda\n"
> 		sys.exit()
> 	if (sys.argv[1] == '%d'%dia_lista):
> 		dia_seleccionado=dia_lista
> 	break
> 
> #Bucle de copia 
> for copia in lista_dir:
> 	os.system('%s -v /mnt/%s %s'%(cmd_copia,copia,destino_dir[dia_seleccionado]))
> 	print "Copiando %s en %s" %(copia,destino_dir[dia_seleccionado])
> #Desmontar
> os.system(desmontar)
> 
> 
> _______________________________________________
> Python-es mailing list
> Python-es en aditel.org
> http://listas.aditel.org/listinfo.py/python-es
> 






Más información sobre la lista de distribución Python-es