#1 Le 10/04/2016, à 21:22
- atlas2003
Redirection non fonctionnel depuis le cron
Bonjour à tous.
J'ai un script bash très simple qui me download le contenu d'un site externe via ftp
#!/bin/sh
lftp -u USER,XXXXXXXXXX -e "set ftp:ssl-allow no;mirror --parallel=3 --verbose /public_html/img /home/nicolas/backup/current;mirror --parallel=3 --verbose /public_html/upload /home/nicolas/backup/current;quit" ftp.XXXXXX.com > /home/nicolas/backup/logA.log
Quand je lance via le terminal, en faisant sh backup.sh, ca marche tres bien. Le log se "remplie" bien comme il faut.
Par contre, quand j'appelle ce script via le cronjob, le backup se fait mais le log est toujours vide.
Je l'apelle comme ceci:
23 00 * * * sh /home/nicolas/backup/backup.sh
(c'est le crontab du meme user que lorsque je lance mon script manuellement)
Quelqu'un aurait une idée?
Blabla autour d'Ubuntu > http://back2web.com/blabla/
Hors ligne
#2 Le 11/04/2016, à 07:24
- bruno
Re : Redirection non fonctionnel depuis le cron
Bonjour,
Essaie de rajouter cette redirection à la fin de ta commande :
… > /home/nicolas/backup/logA.log 2>&1
#3 Le 11/04/2016, à 07:38
- jplemoine
Re : Redirection non fonctionnel depuis le cron
2>&1
--> redirige aussi les erreurs vers le fichier de log : ça peut être utile...
Ce compte ne servira plus : vous pouvez le supprimer si le coeur vous en dit...
Laissé par l'auteur pour historique.
Hors ligne
#4 Le 11/04/2016, à 23:30
- atlas2003
Re : Redirection non fonctionnel depuis le cron
Merci pour vos réponses mais malheuresement ca ne change rien.
J'ai effacé le fichier du log. J'ai relancer le cron. Ca m'a bien recréé le fichier au bon endroit, mais toujours 0 octet.
J'ai retesté en lancant moi meme la commande, et cela a bien ajouté le contenu au log...
Blabla autour d'Ubuntu > http://back2web.com/blabla/
Hors ligne
#5 Le 12/04/2016, à 08:22
- bruno
Re : Redirection non fonctionnel depuis le cron
Je n'ai pas vraiment de solution…
Tout ce que je peux te dire c'est que lorsque ton script est appelé via une tâche cron il s'agit d'un shell non interactif. La commande lftp doit donc se comporter différemment dans ce cas et ne rien envoyer sur STDOUT. Il faudrait fouiller dans la doc de lftp pour voir si on peut trouver une solution, contourner le problème ou utiliser d'éventuels fichiers de logs créés par défaut par lftp.
Si c'est possible tu peux aussi envisager une autre solution, plus sécurisée, consistant à utiliser rsync et ssh.
#6 Le 12/04/2016, à 08:52
- credenhill
Re : Redirection non fonctionnel depuis le cron
hello
essayer ces variables
man lftp
...
xfer:log (boolean)
when true, lftp logs transfers to a file from xfer:log-file setting.
xfer:log-file (path to file)
the file to log transfers to. Default is ~/.local/share/lftp/transfer_log or
~/.lftp/transfer_log.
Hors ligne