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
signature.asc
Description: Esta parte del mensaje está firmada digitalmente