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