El vie, 31-08-2007 a las 09:50 -0300, Federico Alberto Sayd escribió:
> Elvis Aaron Presley escribió:
> > Hola lista, tengo un script de backup en un portatil en mi trabajo que de
> > manera programada (cron) se ejecuta de lunes a viernes y lo único que hace
> > es montar un disco externo usb, copiar y desmontar. El script y la
> > programación cron funcionan bien y es este:
> >
> > ***********************
> > #!/bin/bash
> >
> > DIRECTORIOS="/home/adm5/Mis Documentos/Seguridad Enrique/"
> > PUNTOMONTAJE="/mnt/montaje"
> >
> > echo -e "\033[0;32mOk:\033[0m Montando unidad para backup"
> > if mount -t vfat /dev/sdb1 $PUNTOMONTAJE -o rw ; then
> >         echo -e "\033[0;32mOk:\033[0m Unidad montada correctamente"
> >         echo -e "\033[0;32mOk:\033[0m Comenzando copia"
> >         cp "$DIRECTORIOS" -R $PUNTOMONTAJE
> >
> >         if  [ "$?" = "0" ] ; then
> >                 echo -e "\033[0;32mOk:\033[0m El backup se ha completado
> > satisfactoriamente"
> >                 umount /mnt/montaje > /dev/null
> >         else
> >                 echo -e "\033[0;31mError:\033[0m No se han podido copiar
> > algunos de los ficheros correctamente!!"
> >                 umount /mnt/montaje > /dev/null
> >         fi
> > else
> >         echo -e "\033[0;31mError:\033[0m No se ha podido montar la unidad,
> > se aborta el backup!!"
> > fi
> > ***********************
> >
> > La línea con la que lo hago funcionar en el crontab es esta:
> > 15 14 * * 1-5 root      sh /root/backup_hd.sh >/dev/null 2>&1
> >
> > Bien, tengo dos dudas... A ver si alguien me puede ayudar porque esto ya
> > estaba funcionando de antes (vamos que no lo he hecho yo) y me gustaría
> > cambiar algunas cosas:
> >
> > 1. Cuando el script se ejecuta, lo hace en background y no se abre ninguna
> > ventana ni hay forma de saber si lo ha hecho bien o no. Solo se ve que la
> > luz del disco duro parpadea mucho y la del hd externo también, por lo que
> > entendemos que se hace... Pero me gustaría que en vez de hacerse por debajo
> > saltara alguna pantalla o algo para ver su ejecución.
> >


Para mis scripts en el cron uso libnotify (son esos popups gtk que usa
tanto ubuntu)

Como los scripts los ejecuta normalmente el usuario root tuve que
hacer/modificar un pequeño script que busque la sesión DBus del usuario
y se apropie de ella o ejecutarlo con "su -c"

http://soleup.eup.uva.es/trac/browser/scripts/g-message

Copias ese script en /usr/local/bin/ y le das permisos de ejecución.

Instalas libnotify-bin y notification-daemon

Luego dentro de tus scripts de cron lo llamas:

g-message "titulo" "texto"

si lo ejecutas sin parámetros verás la ayuda que es muy parecida a
notify-send:


Send a message to Gnome's notification service via DBUS
usage: /usr/bin/g-message [-t timeout] [-u user] [-p priority] title
[text]

 -t timeout     duration of the notification in seconds [default: 20000]
 -p priority    color of notification can be low normal or critical
[default: normal]
 -u user        user to notify [defaults to you: mario]
 -h             this help

If text isn't specified, then title is used.


> > 2. Quiero poner en el escritorio un acceso directo para poder ejecutar este
> > script cuando quiera (a parte de que se ejecute en cron), y seré torpe
> > porque no hay manera de crear un lanzador que funcione!!!! ¿? Ni poniendo en
> > el comando a ejecutar "sh /root/backup_hd.sh" ni nada... El usuario del
> > escritorio tiene permisos sobre el fichero. ¿Qué estoy haciendo mal?
> >

Un usuario no puede ejecutar mount a menos que exista una línea en el
fstab con el modificador "users"

¿qué ocurre si lo ejecutas en consola como usuario?

> > Gracias lista.
> >
> > Elvis
> >
> >
> >
> >   
> Podrías usar py-gtk, o py-qt o algún front-end para scripts para que 
> salten ventanas y controles cuando ejecutes tu script. Ahora no recuerdo 
> cuáles son los nativos de gnome y de kde.
> 

Esto en teoría no se puede hacer ya que las variables de entorno de cron
no tienen acceso a las X de quien esté conectado


> Saludos!!
> 
> 

Saludos
-- 
http://soleup.eup.uva.es/mariodebian

Attachment: signature.asc
Description: Esta parte del mensaje está firmada digitalmente

Responder a