Cron, crontab y scrips
Terra 1
torrecollons en terra.es
Mie Oct 17 23:31:50 BST 2007
Ver el final (para no hacer top posting)
En/na Raul Veleiro A (en Yahoo) ha escrit:
> --- Terra 1 <torrecollonsaterra.es> escribió:
>
>
>> Hola a todos:
>>
>> Tengo un problema con el cron, si le digo que
>> ejecute una orden de shell
>> como pueda ser cp o mv o cualquiera de estas, se
>> ejecuta sin problemas,
>> pero cuando le digo que me ejecute un script no hay
>> manera, no se
>> ejecuta, os pongo a continuación un ejemplo de
>> script:
>>
>> #!/bin/bash
>> # Aquest script serveix per conectar als escriptoris
>> remots
>> # per linia de comanaments se l'hi pasen els
>> arguments per
>> # tal de conectarse.
>> # 1 : Escriptori Remot Informatica a IMTG per
>> Windows
>> # 2 : Escriptori Remot Oficina a IMTG per Windows
>> # 3 : Escriptori Remot Informatica a IMTG per Linux
>> # 4 : Escriptori Remot Oficina a IMTG per Linux
>> # 5 : Conexio linia de comanaments a SVCN per Linux
>> # 6 : Escriptori Remot Casal CLN per Windows
>> # 7 : Escriptori Remot Ajuntament DXS per Windows
>> # 8 : Escriptori Remot Casal CRM per Windows
>> # 9 : Escriptori Remot Casal TRRS per Windows
>> # 10 : Escriptori Remot Casal MSBRD per Windows
>> # 11 : Escriptori Remot Casal CLN per Windows
>>
>>
>> opt=$( zenity --list --text "Selecciona una estacio
>> remota" --width 580
>> --height 440 --radiolist --column "Botons" --column
>> "Numero" --column
>> "Maquina Remota" --hide-column "Numero" TRUE 1
>> "Escriptori Remot
>> Informatica a IMTG per Windows" FALSE 2 "Escriptori
>> Remot Oficina a IMTG
>> per Windows" FALSE 3 "Escriptori Remot Informatica a
>> IMTG per Linux"
>> FALSE 4 "Escriptori Remot Oficina a IMTG per Linux"
>> FALSE 5 "Conexio
>> linia de comanaments a SVCN per Linux" FALSE 6
>> "Escriptori Remot Casal
>> CLN per Windows" FALSE 7 "Escriptori Remot
>> Ajuntament DXS per Windows"
>> FALSE 8 "Escriptori Remot Casal CRM per Windows"
>> FALSE 9 "Escriptori
>> Remot Casal TRRS per Windows" FALSE 10 "Escriptori
>> Remot Casal MSBRD per
>> Windows" FALSE 11 "Escriptori Remot Casal CLN per
>> Windows" );
>>
>> # Mirem si s'ha pitjat cancel.lar, si es aixi sortim
>> de l'script
>> case $? in
>> "0")
>> ;;
>>
>> "1")
>> exit;;
>> esac
>>
>> # A continuacio evaluem el valor de la variable opt
>> i actuem en
>> consecuencia amb un CASE
>> case $opt in
>> "1")
>> rdesktop xxx.xxx.xxx.xxx -u miusuario -p
>> mipassword -a 24 -g
>> 1024x768 -x b -z -P -f -E -k es;;
>> "2")
>> rdesktop xxx.xxx.xxx.xxx -u miusuario -p
>> mipassword -a 24 -g
>> 1024x768 -x b -z -P -f -E -k es;;
>> "3")
>> vncviewer xxx.xxx.xxx.xxx:0 -passwd
>> "/home/seglinux/.vnc/passwd";;
>> "4")
>> vncviewer xxx.xxx.xxx.xxx:0 -passwd
>> "/home/seglinux/.vnc/passwd";;
>> "5")
>> exec /usr/bin/gnome-terminal -x ssh
>> miusuarioaxxx.xxx.xxx.xxx -p
>> 00000;;
>> "6")
>> rdesktop xxx.xxx.xxx.xxx -u miusuario -p
>> mipassword -a 24 -g
>> 1024x768 -x b -z -P -f -E -k es;;
>> "7")
>> rdesktop xxx.xxx.xxx.xxx -u miusuario -p
>> mipassword -a 24 -g
>> 1024x768 -x b -z -P -f -E -k es;;
>> "8")
>> rdesktop xxx.xxx.xxx.xxx -u miusuario -p
>> mipassword -a 24 -g
>> 1024x768 -x b -z -P -f -E -k es;;
>> "9")
>> rdesktop xxx.xxx.xxx.xxx -u miusuario -p
>> mipassword -a 24 -g
>> 1024x768 -x b -z -P -f -E -k es;;
>> "10")
>> rdesktop xxx.xxx.xxx.xxx -u miusuario -p
>> mipassword -a 24 -g
>> 1024x768 -x b -z -P -f -E -k es;;
>> "11")
>> rdesktop xxx.xxx.xxx.xxx -u miusuario -p
>> mipassword -a 24 -g
>> 1024x768 -x b -z -P -f -E -k es;;
>> esac
>>
>> # Ens asegure'm de sortir de l'script
>> exit
>>
>> No hay manera de que se ejecute, lo he puesto en
>> todos los directorios,
>> la orden del crontab es esta
>>
>> 17 20 * * * DISPLAY=":0"
>> /etc/cron.d/ConexionsRemotes
>>
>> lo he puesto en todos los directorios con el path,
>> sin el path con la
>> orden exec delante, con .sh, en fin dando vueltas
>> por san google no he
>> encontrado nada que lo aclare.
>>
>> Si puede ser una pista al ejecutar mail no me sale
>> ningún mensaje
>> posterior al mes de julio del 2006
>>
>> En syslog solo me aparece la orden CRON con la linea
>> del crontab, pero
>> no me indica que ha pasado, no existe ningún
>> cron.log o no soy capaz de
>> encontrarlo con locate.
>>
>> En fin no me alargo mas, espero si alguien se ha
>> encontrado con esto me
>> pueda ayudar.
>>
>> Pere
>>
>>
>>
>>> --
>>>
>> ubuntu-es mailing list
>> ubuntu-esalists.ubuntu.com
>> https://lists.ubuntu.com/mailman/listinfo/ubuntu-es
>>
>
> Hola,
> No entiendo muy bien porque pones la orden
> DISPLAY=":0" en la propia linea de cron, quizas eso lo
> deberias hacer dentro del script.
>
> Por otro lado, asegurate poner el nombre del scrip tal
> cual esta el el path, es decir, con la extension .sh
>
> Esto debe funcionarte:
> 17 20 * * * /etc/cron.d/ConexionsRemotes.sh
>
>
> Raul
>
> Solo hay 10 tipos de personas en el mundo;
> Los que entienden binario y los que no:
> Use Linux-Ubuntu !
> _o)
> /\\
> \_V
>
>
> ______________________________________________
> Pregunta, Responde, Descubre.
> Comparte tus consejos y opiniones con los usuarios de Yahoo! Respuestas
> http://es.answers.yahoo.com/info/welcome
>
>
Me respondo porque al final lo he conseguido.
Esta seria una linea de ordenes correcta en el crontab:
34 23 * * * DISPLAY=:0 /usr/bin/vlc /media/hdc4/incoming/files/CLIPART\
OpenOffice.avi
En respuesta a Raul he de decirte que quizá si que funcione, la verdad
no lo he probado, pero si te fijas en esta linea estoy lanzando el vlc,
o se no hay script es un ejecutable directo por lo tanto tiene que estar
al principio de la linea de comandos.
Pero el intringulis es que el root no puede ejecutar una utilidad
gráfica en las X de otro usuario, o sea si arranco las X como pepito el
root no puede ejecutar, por ejemplo vlc en una orden lanzada por el
sistema como root, como tampoco puede ejecutar un script que utilize las
X para ejecutarse.
Pero para eso usamos Linux porque todo lo que queramos siempre se puede
hacer, como pues diciéndole a las X que el usuario root va a ejecutar un
programa en la sesión de pepito con esta orden:
*xhost +local:root * para activarlo y
*xhost -local:root *para detenerlo
No es posible incluirlo ni en la misma linea del crontab ni dentro de un
script, hay que ejecutarlo desde un shell; Ademas si reinicias se pierde
o sea que hay ejecutarlo de nuevo, lo que si puede incluirse dentro de
un script como decía Raul es el DISPLAY:=0
Si lo que hay que ejecutar es algo que no precisa de sacar nada en
pantalla no es necesario ni DISPLAY ni xhost.
Saludos y gracias a todos
Pere
*
*
-------------- següent part --------------
Un document HTML ha estat eliminat...
URL: https://lists.ubuntu.com/archives/ubuntu-es/attachments/20071018/99ce50ec/attachment-0001.htm
Más información sobre la lista de distribución ubuntu-es