Tâche cron

Fermé
Vadou - 18 févr. 2008 à 21:51
 Vad - 19 févr. 2008 à 12:44
Bonjour,
je test un peu la commande pour créer des tâches cron : crontab -e

j'ai créé un tâche : 45 21 * * * echo "Bonsoir $USER" mais rien ne s'affiche???
La tâche est bien dans crontab -l
quelqu'un pourrait m'aider svp
Merci

2 réponses

asevere Messages postés 13084 Date d'inscription lundi 28 janvier 2002 Statut Webmaster Dernière intervention 3 février 2022 426
19 févr. 2008 à 11:30
Bonjour,


J'imagine que tu attend un affichage sur la console ?

Cron n'a pas connaissance de la console de l'utilisateur, il fonctionne dans son propre environnement.

Tu peux éventuellement renvoyer la sortie sur un terminal, mais il faut savoir sur quel terminal l'utilisateur se trouve...
Ou alors, envoyer la sortie sur la première console virtuelle (/dev/tty1) qui est accessible par Ctrl+Alt+F1.

Tu peux faire un test, d'une console quelconque, tu tapes:
echo "Bonjour tty1" >/dev/tty1
Puis tu tapes la combinaison Ctrl+Alt+F1, pour voir ton messsage, puis Ctrl+Alt+F6 ou F7 pour revenir à ton bureau.

Je ne détaille pas plus car c'est un usage peu commun, les rares fois ou l'on a besoin d'avertir tout les utilisateurs connectés c'est en cas de redémarrage, et dans ce cas, la commande shutdown gère tout ça elle-même trés bien (Eventuellement, tu peux mettre en cron cette commande, mais vu qu'elle accepte une date d'arrêt, normalement, tu n'en auras pas besoin.)


L'usage plus commun de cron, c'est d'executer un script, et de rediriger la sortie et l'erreur standard vers un fichier de log.
Si je reprend ton exemple:
45 21 * * * echo "Bonsoir $USER" >/home/ton_user/cron.log 2>&1 
Tu retrouveras dans le fichier /home/ton_user/cron.log le texte "Bonsoir " (sans nom d'utilisateur pour les mêmes raisons qu'au début du message)

N'hésites pas à lire les manuels de cron/crontab ça te permetera de faire des tests qui en valent le coup (en prenant en compte le fait que l'environnement de cron n'est pas exactement celui de l'utilisateur):
man cron
man crontab
man 5 crontab



A plus

Edit: Précision; sauf sur certains os (Les BSD principalement) la variable $USER n'est pas settée, il faut utiliser $LOGNAME en lieu et place de cette dernière ;-) (cf: man 5 crontab)
1
ok merci je vais teste ça tout de suite...je te dis si sa marche...
0