Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 03/10/2006, à 13:48

uzo

crontab refractaire

Hello big_smile ,

Je voudrai automatiser des taches mais mon teste avec crontab ne fonctionne pas :

Mon fichier:

crontab -l
# m h  dom mon dow   command
*/5 * * * * /usr/bin/zenity --title="essai" --file-selection

Cela ne renvoye rien (bien sûr "/usr/bin/zenity --title="essai" --file-selection" entré directement dans un terminal fonctionne ;-) sinon ceci dans les logs :

cat /var/log/syslog

Oct  3 13:20:02 localhost /USR/SBIN/CRON[4467]: (math) CMD (/usr/bin/zenity --title="essai" --file-selection)
Oct  3 13:20:02 localhost /USR/SBIN/CRON[4466]: (math) MAIL (mailed 101 bytes of output but got status 0x0001 )
Oct  3 13:25:01 localhost /USR/SBIN/CRON[4587]: (math) CMD (/usr/bin/zenity --title="essai" --file-selection)
Oct  3 13:25:01 localhost /USR/SBIN/CRON[4586]: (math) MAIL (mailed 101 bytes of output but got status 0x0001 )
Oct  3 13:28:37 localhost crontab[4622]: (math) LIST (math)
Oct  3 13:30:01 localhost /USR/SBIN/CRON[4648]: (math) CMD (/usr/bin/zenity --title="essai" --file-selection)
Oct  3 13:35:01 localhost /USR/SBIN/CRON[4708]: (math) CMD (/usr/bin/zenity --title="essai" --file-selection)
Oct  3 13:36:54 localhost crontab[4731]: (math) LIST (math)

Bref quelque-chose se passe quelque part à interval voulu, mais pas où je veux. J'ai lu le man de crontab et ai ajouté mon nom d'utilisateur à /etc/cron.allow pour être sûr. Cela ne change rien.

Merci de vos lumières roll

PS: cron est lancé wink ... Actif aux runlevels 2,3,4 et 5.

Hors ligne

#2 Le 03/10/2006, à 22:45

Math

Re : crontab refractaire

Cela ne renvoye rien

uzo a écrit :

# m h  dom mon dow   command
*/5 * * * * /usr/bin/zenity --title="essai" --file-selection

ok, pour avoir plus d'infos faites ceci :

crontab -e
*/5 * * * * /usr/bin/zenity --title="essai" --file-selection >>/home/XXXXX/crontab.log 2>&1

à l'heure prévu, cela devrait vous créer un fichier crontab.log à l'endroit indiqué, il contiendra surement des infos.

Hors ligne

#3 Le 04/10/2006, à 17:55

uzo

Re : crontab refractaire

Alors voici les logs :

cat ~/crontab.log
Cette option n'est pas disponible. Veuillez consulter --help pour toutes les utilisations possibles.

(firefox-bin:2916): Gtk-WARNING **: cannot open display:

(nautilus:2945): Gtk-WARNING **: cannot open display:

La première ligne correspond à :
*/5 * * * * /usr/bin/zenity --title="essai" --file-selection >>/home/XXXXX/crontab.log 2>&1

les suivantes respectivement à  /usr/bin/firefox et /usr/bin/nautilus dans crontab (tout le monde l'aura compris).
Au vu de ces deux derniers résultats j'ai donc essayé des commandes comme "mkdir" et "rsync" etc. qui ne font pas appel à une interface graphique et... ça marche! Mais bon, moi c'est surtout zenity qui m'intèresse de pouvoir "croner".
En tout cas un premier grand merci pour ta réponse smile

Hors ligne

#4 Le 04/10/2006, à 17:59

tinkywinky

Re : crontab refractaire

Je suis peut être à côté de la plaque, mais... wink

Zenity ce n'est pas un truc pour afficher des boîtes de dialogue ? Car j'avais fais un petit script en python une fois, et impossible de le lancer via un cron car je faisais appel à certaines fonctions graphique (je n'affichais cepandant rien du tout..). Ton problème me fais penser à celui que j'avais eu.

Dernière modification par tinkywinky (Le 04/10/2006, à 18:00)


Dell XPS M1710, Core 2 Duo 2.16 Ghz, 1 Go RAM, NVidia 7900 GTX 512Mo (1.0.9755)
Debian Unstable, Kernel 2.6.21, KDE 3.5.6, Beryl SVN

Hors ligne

#5 Le 04/10/2006, à 18:02

coutume1

Re : crontab refractaire

Ca correspond à votre problème :

http://www.commentcamarche.net/forum/affich-1111775-crontab

(l'utilisateur de crontab doit exporter la variable d'environnement DISPLAY qui n'est définie normalement que sous X, mais lisez le lien c'est très clair)

Benoît.

Hors ligne

#6 Le 04/10/2006, à 18:08

tinkywinky

Re : crontab refractaire

Ahhh wink j'ai appri quelque chose merci


Dell XPS M1710, Core 2 Duo 2.16 Ghz, 1 Go RAM, NVidia 7900 GTX 512Mo (1.0.9755)
Debian Unstable, Kernel 2.6.21, KDE 3.5.6, Beryl SVN

Hors ligne

#7 Le 04/10/2006, à 18:55

uzo

Re : crontab refractaire

Maintenant

*/1 * * * *  /usr/bin/mozilla --display=:0.0  >>/home/chez_moi/crontab.log 2>&1

me renvoit

Xlib: connection to ":0.0" refused by server
Xlib: No protocol specified
(firefox-bin:5250): Gtk-WARNING **: cannot open display: :0.0

sad

et de toute manière cela ne change rien au problème avec zenity.
Merci tout de même pour le lien, cela fait avancer les choses petit à petit tongue

En variante :

*/1 * * * * `/usr/bin/nautilus --display=:0.0` >>/home/chez_moi/crontab.log 2>&1

(avec `...`) renvoit rien du tout dans les logs !

Dernière modification par uzo (Le 05/10/2006, à 12:50)

Hors ligne

#8 Le 08/10/2006, à 00:19

uzo

Re : crontab refractaire

J'ai trouvé. Il faut faire un :

xhost +

pour avoir accès au serveur X (si j'ai bien compris) et tout rentre dans l'ordre.
Il était temps big_smile

Dernière modification par uzo (Le 08/10/2006, à 17:39)

Hors ligne

#9 Le 08/10/2006, à 17:59

uzo

Re : crontab refractaire

Un petit récapitulatif :

crontab -e

pour éditer le fichier de conf

Ajouter tout de suite :

DISPLAY=:0.0

Pour définir cette variable (en gros où faire l'affichage) qui sera ensuite utilisée pour toute les applications qui se servent de X.

Faire un petit teste en ajoutant cette ligne :

*/1 * * * * /usr/bin/zenity --info --text "Teste crontab"

(Chaque fois que votre horloge changera de minute le message "Teste crontab" s'affichera)

Sauvegardez et quittez

Bah rien ne se passe... C'est normal (enfin j'ai mis du temps à le comprendre)
Il faut taper dans une console (en utilisateur normal, pas en root) :

xhost +

Pour donner l'autorisation de l'affichage. Ouf... Maintenant cron sait non seulement où afficher mais en plus il en a le droit lol
Petite précision, il faut le faire à chaque démarrage donc servez-vous des utilitaires propres à votre bureau (genre "Système -> Préférences -> Sessions" sous gnome je crois) pour le faire dès le chargement de X par exemple.

PS.: J'ai cru comprendre sur un forum en allemand que cette dernière commande n'était pas super en terme de sécurité ?!? Que les personnes qui savent faire autrement en plus sûr aient la gentillesse de me montrer comment faire wink . En attendant, je peux enfin faire afficher mes messages à l'heure et la date voulue. Trop bien big_smile !

Dernière modification par uzo (Le 08/10/2006, à 18:02)

Hors ligne

#11 Le 26/01/2008, à 03:14

kenwaz

Re : crontab refractaire

merci beaucoup uzo smile:):)
je commencais a devenir fou car les autres tutos que je trouvais sur crontab disais de mettre le DISPLAY=:0.0 juste avant la commande, ce qui ne fonctionait pas chez moi !

juste une question: le xhost + il faut le faire a chaque reboot ?


Ubuntu 8.04

^_^

Hors ligne

#12 Le 26/01/2008, à 09:38

Skippy le Grand Gourou

Re : crontab refractaire

à€ noter aussi ce bug (présent sur Ubuntu ?) :[url=http://linux.ensimag.fr/trucs_mplayer.html]

Emmanuel Colbus a écrit :

Malheureusement, il y a un bogue dans certaines versions de cron(8), qui fait qu'il tue tous les processus qu'il lance juste après les avoir créés.

[/url]
(peut-être est-ce celui reporté ici ?).

La solution, remplacer sa commande par :

echo "commande" | at now

wink

Hors ligne

#13 Le 22/02/2008, à 15:50

zoomy

Re : crontab refractaire

voilà comment j ai réglé le probleme du xhost pour ne pas avoir à le lancer à chaque fois au démarrage avec init.d

00 2   * * *   export DISPLAY=:0.0 && xhost local:zoom && /usr/bin/transmission >> home/zoom/crontab.log 2>&1
10 7    * * *    killall -15 transmission

xhost local:zoom n autorise que l utilisateur zoom à se connecter en local, plus restrictif que xhost + qui accepte tout le monde.

#14 Le 21/08/2008, à 22:41

PPN

Re : crontab refractaire

Beaucoup plus simple

DISPLAY=:0.0 ma_commande.sh

Hors ligne

#15 Le 29/09/2008, à 20:27

rangzen

Re : crontab refractaire

Un résumé avec gnome-schedule si on veut rien faire à la mano : http://l-homme.com/tatouage/?p=31 big_smile

Hors ligne