Pages : 1
#1 Le 07/07/2016, à 11:42
- Oni_Shadow
tache cron turlipinante
bonjour, j'ai un problème tout bête, mais dont je ne comprend pas l'origine:
J'ai un script send_ip.sh, qui, lorsque je l’exécute envoie à une adresse mail, l'adresse ip (quasi-fixe) de mon début de serveur.
Le script en question :
#!/bin/bash
public_ip=`dig +short myip.opendns.com @resolver1.opendns.com`
ssmtp -oi ced.chanseaulme@gmail.com << EOF
From: ced.chanseaulme@gmail.com
To: ced.chanseaulme@gmail.com
Subject: IP_address at `date`
$public_ip
EOF
Il fonctionne tres bien lorsque je le lance en root ou utilisateur normal (oslight)
maintenant je voulais automatisé cet envoi toute les heure avec cron ; j'ai donc fait un
crontab -e
et ajouté l'entrée
* */1 * * * /home/oslight/send_ip.sh
#puis devant l'échec
*/1 * * * * /bin/bash /home/oslight/send_ip.sh
Mais je rećois deux mail, un de oslight@gmail.com
me disant
/home/oslight/send_ip.sh: line 3: ssmtp: command not found
et un autre «Delivery Status Notification (Failure)» me disant que oslight@gmail.com n'existe pas, normal...
pourquoi ai-je donc un soucis avec ce cron ?
Rouillé
Hors ligne
#2 Le 07/07/2016, à 16:52
- bruno
Re : tache cron turlipinante
Cela a déjà du être expliqué 1000 fois dans le forum, une tâche cron est exécuté dans un shell non-interactif et non connecté (non-login shell). Telle quelle la tâche ne « connaît » donc pas l'emplacement des exécutables (pas de variable d'environnement PATH).
Donc soit tu défini PATH dans ton crontab, soit tu mets les chemins complets des exécutables dans ton script.
Exemple :
SHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
* */1 * * * /home/oslight/send_ip.sh
#3 Le 07/07/2016, à 20:14
- Oni_Shadow
Re : tache cron turlipinante
Et bien cela à beau être un problème connues, je n'avais pas trouvé réponse à ma question lors de mes recherches préalables... Merci pour cet éclaircissement en tout cas.
Rouillé
Hors ligne
Pages : 1