Pages : 1
#1 Le 03/10/2006, à 13:48
- uzo
crontab refractaire
Hello ,
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
PS: cron est lancé ... 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
# 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
Hors ligne
#4 Le 04/10/2006, à 17:59
- tinkywinky
Re : crontab refractaire
Je suis peut être à côté de la plaque, mais...
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 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
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
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
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
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 . En attendant, je peux enfin faire afficher mes messages à l'heure et la date voulue. Trop bien !
Dernière modification par uzo (Le 08/10/2006, à 18:02)
Hors ligne
#10 Le 18/01/2008, à 17:55
- Skippy le Grand Gourou
Re : crontab refractaire
Merci !
Hors ligne
#11 Le 26/01/2008, à 03:14
- kenwaz
Re : crontab refractaire
merci beaucoup uzo :):)
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]
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
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
Hors ligne
Pages : 1