Script con rsync
Volver al foro (Usando Guadalinex V7)-
Hola gente realizé hace un tiempo un simple script que me funcionaba a la perfección, este detecta si está conectado el pendrive en donde hago la copia de los archivos contenido en una carpeta con el comando rsync y una vez ha realizado la copia o actualización de la carpeta se desmonta solo y lanza un mensaje.
El caso es que tras hacer algunas actualizaciones en el sistema (tengo 10.04 hasta que salga la proxima versión de soporte largo) me ha dejado de funcionar, estoy que ya no sé como mirarlo, le he dado muchas vueltas y no entiendo que falla en las lineas ya que si ejecuto directmante en la consola la sentencia "ls -l /dev/disk/by-uuid/ad1dd9f8-fc33-4d58-b314-90218cc4539b" me devuelve como es de esperar una linea con los permisos, vamos que esto funciona bien... no entiendo el error que me devuelve.
¿Que estoy haciendo mal si antes de actualizar funcionaba correctamente?
#! /bin/bash
if (( ls -l /dev/disk/by-uuid/ad1dd9f8-fc33-4d58-b314-90218cc4539b ))
then
logger "$0: entro en la condicion Pendrive conectado"
logger "$0: lanzo rsync"
rsync -rutz /home/pepillo/documentosSalvadosPorScript/ /media/ad1dd9f8-fc33-4d58-b314-90218cc4539b/nuevoSalvadoAuto;
sleep 5;
logger "$0: desmonto la unidad"
zenity --info --text "Copia de Seguridad realizada correctamente"
umount /media/ad1dd9f8-fc33-4d58-b314-90218cc4539b;
else
logger "$0: no encontrado uuid ad1dd9f8-fc33-4d58-b314-90218cc4539b"
exit;
fi
logger "$0: fin"
Cuando ejecuto el script con el contenido citado anteriormente me devuelve el siguiente error:
./scriptGuay.sh: línea 3: ((: ls -l /dev/disk/by-uuid/ad1dd9f8-fc33-4d58-b314-90218cc4539b : división por 0 (el elemento de error es "/disk/by-uuid/ad1dd9f8-fc33-4d58-b314-90218cc4539b ")
No entiendo que sucede, ha sido un script que he utilizado anteriormente sin ningún problema y tras algunas actualizaciones me ha dejado de funcionar para devolverme ese error.
Acepto sugerencias que esto me tiene ya agobiado..
saludos
Porque nosotros somos la encarnación local de Cosmos que ha crecido hasta tener consciencia de sí. Hemos empezado a contemplar nuestros orígenes: sustancia estelar que medita sobre las estrellas. Conjuntos organizados de decenas de miles de billones de billones de átomos que consideran la evolución de los átomos y rastrean el largo camino a través del cual llegó a surgir la consciencia, por lo menos aquí. Nosotros hablamos en nombre de la Tierra. Debemos nuestra obligación de sobrevivir no sólo a nosotros sino también a este Cosmos, antiguo y vasto, del cual procedemos. Carl Sagan-Cosmos-
Posiblemente el uuid del pendrive haya cambiado.
Normalmente el uuid del pendrive puede cambiar si lo formateas
Para encontrar el UUID del pendrive conectado , ejecuta en una terminal: sudo blkid | grep ‘UUID’
y cambia el uuid que te salga con esta linea en el script.
---------------
Otra solución es que modifiques el script para que en vez de reconocer al pendrive por su uuid, lo haga por su "etiqueta" ("label")
Para encontrar la Etiqueta del pendrive conectado, ejecuta en una terminal: sudo blkid | grep ‘LABEL’
– Para poner una Etiqueta si el pendrive no la tiene: Sistema-Administración-Editor de particiones: eliges el pendrive, lo desmontas, y ya le puedes poner una etiqueta ( los dos últimos pasos con el botón derecho del ratón). Y cambia /dev/sdxx por LABEL=LABELNAME ( por ejemplo LABEL=Cruzer )
mi blog: http://hatteras.wordpress.com/ -
Prueba con esto:
if [ `ls -a /dev/disk/by-uuid/|grep ad1dd9f8-fc33-4d58-b314-90218cc4539b` = "ad1dd9f8-fc33-4d58-b314-90218cc4539b" ]
Para hacerlo más legible puedes poner el hash del usb en una variable y usarla en vez de toda la ristra de numerajos.
pincho="ad1dd9f8-fc33-4d58-b314-90218cc4539b"
O como dice Hatteras puedes usar el label pero de una forma más fácil en vez de by-uuid puedes poner by-label.
-
Hola gracias a ambos antes de nada.
He preferido editar la etiqueta del dispositivo y denominarla "usb4gb", con esto obtengo similares resultados que muestro a continuación:
./scriptGuay.sh: línea 3: ((: ls -l /dev/disk/by-label/usb4gb : división por 0 (el elemento de error es "/disk/by-label/usb4gb ")
Vuelvo a detallar el script tal como está ahora mismo:
#! /bin/bash
if (( ls -l /dev/disk/by-label/usb4gb )) ;
then
logger "$0: entro en la condicion Pendrive conectado"
logger "$0: lanzo rsync"
rsync -rutz /home/fjesusarroyo/documentosSalvadosPorScript/ /media/usb4gb/nuevoSalvadoAuto;
sleep 5;
logger "$0: desmonto la unidad"
zenity --info --text "Copia de Seguridad realizada correctamente"
umount /media/usb4gb;
else
logger "$0: no encontrado el pendrive de la copia de seguridad"
exit;
fi
logger "$0: fin"
He probado lanzar directamente la sentencia:
ls -l /dev/disk/by-label/usb4gb funcionando OK
tambien he lanzado directamente la sentencia:
rsync -rutz bla bla bla funcionando OK
Lo que me queda es que he metido la pata en la condicion y no sé en qué.
he consultado el log del sstema y me dice:
"no encontrado el pendrive de la copia de seguridad"
por lo tanto siempre me está entrando en la condición en que no se cumple la localización del pendrive con la sentencia ls -l /dev/by-label/usb4gb
alucino con esto
saludos
Porque nosotros somos la encarnación local de Cosmos que ha crecido hasta tener consciencia de sí. Hemos empezado a contemplar nuestros orígenes: sustancia estelar que medita sobre las estrellas. Conjuntos organizados de decenas de miles de billones de billones de átomos que consideran la evolución de los átomos y rastrean el largo camino a través del cual llegó a surgir la consciencia, por lo menos aquí. Nosotros hablamos en nombre de la Tierra. Debemos nuestra obligación de sobrevivir no sólo a nosotros sino también a este Cosmos, antiguo y vasto, del cual procedemos. Carl Sagan-Cosmos-
-
¡¡ Genial !!
Funciona correctamente !!
Muchas gracias por la ayuda
y digo yo ¿como que ha dejado de funcionar? acaso ha cambiado el lenguaje?? sin aviso alguno, antes me funcionaba tal como lo tenia (con los 2 parentésis)
Saludos
Porque nosotros somos la encarnación local de Cosmos que ha crecido hasta tener consciencia de sí. Hemos empezado a contemplar nuestros orígenes: sustancia estelar que medita sobre las estrellas. Conjuntos organizados de decenas de miles de billones de billones de átomos que consideran la evolución de los átomos y rastrean el largo camino a través del cual llegó a surgir la consciencia, por lo menos aquí. Nosotros hablamos en nombre de la Tierra. Debemos nuestra obligación de sobrevivir no sólo a nosotros sino también a este Cosmos, antiguo y vasto, del cual procedemos. Carl Sagan-Cosmos
-
-
-
-
fjesusarroyo
Iniciado
Envíos: 23