copiar directorios 2 OK!!

Marcos Sánchez Provencio rapto en arrakis.es
Mie Oct 16 15:33:05 CEST 2002


Haciendo de abogado del diablo, te fallará si alguno de los nombre
contiene comillas. En Linux es posible.

El mié, 16-10-2002 a las 12:32, Jon Bengoetxea escribió:
> 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 directorrio 
> > #/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 paraa 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
> > 
> 
> 
> _______________________________________________
> 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