El día 25 de noviembre de 2011 13:16, jmramirez (mas_ke_na) <mas_ke...@hotmail.com> escribió: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > Buenas a todos > > Estoy haciendo un script para que sincronice dos directorios (un nas de > un edificio con otro nas en otro edificio), antes tenia puesto el rsync. > Pero se agotaba el tiempo de espera y daba muchos fallos ( la conexión > entre nas'es no es muy buena). Así que decidí copiar archivo por archivo > ( hago otros backups correctamente de esta forma pero este me da > problemas (Por los subdirectorios)) y que enviara correo. Así en caso de > fallos se en que punto se quedo y puedo retomarlo. > > Lo que ocurre es que listo los directorios y los comparo con diff. Pero > me he encontrado con muchos subdirectorios y con el modificador -r del > diff no me funciona como yo espero. Una alternativa "chunga" seria que > me creara un diff por cada subdirectorio, pero no se si el día de mañana > habrá nuevos directorios. > > Así que recurro a la lista a ver si alguien puede ayudarme: > > ##### > #!/bin/bash > > # guardo el listado de los directorios en ficheros. > > Navision=`ls -lRth /root/SERVIDORES.54/NAVISION > /tmp/Navision.dir` > Navisionbak=`ls -lRth /root/SERVIDORES.61/NAVISION > /tmp/Navisionbak.dir` > > # Comparo con diff y paso al fichero lo que hay que copiar > > diff -r /tmp/Navision.dir /tmp/Navisionbak.dir |grep "<" >/tmp/Navision.txt > > # Limpio el listado para dejar solo el nombre a fin de copiarlo > > Navisionlimpio=`cat /tmp/Navision.txt | awk {'print $6'} > > /tmp/Navisionlimpio.txt` > > # comparo con diff usando una lista ( lee linea por linea) > # Por cada linea del fichero, guarda la hora inicio, guarda el tiempo de > ejecucion del comando > # copia la cinta correspondiente guardando un log que luego envio por > correo y guarda la hora de finalizacion > > # Navision > for fichero in $(cat /tmp/Navisionlimpio.txt) > do > tiempo=`date > /tmp/Navision.log` > /usr/bin/time -p -o /tmp/timeNavision.log echo > /root/SERVIDORES.54/NAVISION/$fichero > /root/SERVIDORES.61/NAVISION/$fichero > /tmp/Navisioncopias.log > tiempo1=`date > /tmp/tiempo1Navision.log` > /usr/local/nagios/libexec/correo_entreNASES.pl > jmrami...@cosmantenimiento.com > > done > > # EOF > ##### > > Todo va bien, menos la parte del "diff -r" > > Pruebas: > > > srvbacula:~# ls -lRth /root/SERVIDORES.54/NAVISION > /tmp/Navision.dir > > srvbacula:~# ls -lRth /root/SERVIDORES.61/NAVISION > /tmp/Navisionbak.dir > > srvbacula:~# diff -r /tmp/Navision.dir /tmp/Navisionbak.dir |grep "<" >>/tmp/Navision.txt > > srvbacula:~# tail -n 10 /tmp/Navision.txt > < /root/SERVIDORES.54/NAVISION/Licencias Navision: > < -rwxrwxrwx 1 cos root 19K mar 16 2010 PROD_HASTA_ENE_2012.flf > < -rwxrwxrwx 1 cos root 24K ene 7 2010 COS_2010_01_07.flf > < -rwxrwxrwx 1 cos root 12K ene 7 2010 COS_2010_01_07.txt > < /root/SERVIDORES.54/NAVISION/Plantillas: > < -rwxrwxrwx 1 cos root 20K may 19 2010 4.DOC > < -rwxrwxrwx 1 cos root 20K may 19 2010 3.DOC > < -rwxrwxrwx 1 cos root 40K may 11 2010 2.XLS > < -rwxrwxrwx 1 cos root 1,5M may 11 2010 1.DOC > < -rwxrwxrwx 1 cos root 1,2M may 10 2010 1.PDF > > Como veis no da la ruta completa, por eso no me va el script. > > Ejemplo: > > cp /root/SERVIDORES.54/NAVISION/$fichero > /root/SERVIDORES.61/NAVISION/$fichero > > Pero $fichero es: > $fichero=4.DOC > > En lugar de: > $fichero=Plantillas/4.DOC > > > NOTA: por ahora estoy con echo en lugar de cp, para no romper nada. > > Gracias por leerme hasta aquí y espero haberme explicado correctamente. > No soy programado, como se puede ver XD. Lo mismo hay otra forma mejor > de hacer lo que quiero, sin usar el rsync. > > Un saludo > - -- > "Si los tontos volaran, el cielo se oscurecería" > > No me envié correos en formatos propietarios > http://www.gnu.org/philosophy/no-word-attachments.es.html > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v1.4.10 (GNU/Linux) > Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ > > iQEcBAEBAgAGBQJOz4crAAoJEOWNzQnqy+fzx9MIANlppvSZl78WkV3WP2Tsr+6a > eVTo4vYsboaLEN5kf3E7N/T0GKDDnSjTI6G76WPy7bmI+xrLf5dMtiTEyNGpA3+Z > MkM5+foDMQNrZT7ll/CiSHfJtxgLaM36yfG+dB7yQbv0kn7BtEzLNqgc7dVSGnMN > Df+miqF1d3xuN4/qVUf3gC+bHlCDiWXyInNRvcLe4kwboc+i8YzW55toCExHh+bt > jHijvI4fjxAEtKvMBb+R2Bo3bEVphAc7bVyF8ttWSM+kkcGTsvIti7oZWZjx5se1 > 5igPbyoTDqRdGOXmjpFx9c/xiwdC4/aR3E8pNe1tUKNuL6ufhP3fzMkNAMS3wDs= > =sET6 > -----END PGP SIGNATURE----- > > >
Creo que rsync es una buena herramienta, si falla la puedes relanzar sin problemas.... También tienes unison o algo así que permite sincronizaciones bidireccionales, a mi me dió un poco de miedo.... Sinceramente, no creo que tu script vaya a superar al rsync.... :-) S2. -- To UNSUBSCRIBE, email to debian-user-spanish-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/CAGw=rhiw+8v-2s2xgmoge54q3+xpjudbxgjpfs1bvbucp2o...@mail.gmail.com