Un job lancer en crontab a un environnement divfferent qu'en ligne de commande .
De plus il n'a pas forcement le meme shell
donc le script doit plutot commencer par :
#!/bin/bash ou pdksh ou ce que tu veut (meme perl)

pour verifier s'il y a des erreurs (et dans tout les cas normalement )
il faux redirectionner tes sortie standart et des erreur :
30    22    *    *    1-5    /home/sauve > /home/moncript.log 2>&1

la dans ton fichier log tu aurra peut etre des explications .........

pour tester l'environement tu peut même ajouter au debut de ton script la commande
set histoire de retrouver
dans le log les element d'environnement (PATH notemment..)




Benoit Caron a écrit :

> Il est écrit en quoi, ton script de sauvegarde?
>
> J'ai l'impression que t'as simplement une erreur dans la configuration
> de ta cron job.
>
> Les commandes lancées dans cron n'ont pas le même environnement que
> lorsque lancé dans un shell ordinaire. Il faut souvent leur donné plus
> de détails
>
> > >
> > je programme des sauvegardes au travers d'un script nommé /home/sauve. Si je
> > lance /home/sauve, la sauvegarde s'effectue normalement.
>
> Ton script est bien situé directement dans le répertoire /home ? Je suis
> peut-etre trop puriste, mais ca ne me semble pas tres clean... Pourquoi
> ne pas le mettre dans le répertoire de son propriétaire?
>
> >  Je faie crontab -e, puis je tape
> > 30    22    *    *    1-5    /home/sauve &
> > du lundi au vendredi à 22h30
>
> Si on suppose que ton script est en Perl (désolé, je fais _tout_ en
> Perl.. ;oD), ca te donnerais plus kk chose comme
>
> 30 22 * * 1-5 /usr/bin/perl /home/sauve
>
> Pas de & à la fin.
>
> Regarde man crontab pour plus d'info sur l'environnement que recoit la
> cron job.
>
> --
> Benoit Caron
> Analyste-Programmeur
> Netgraphe - Webfin.com - Le Web Financier
> - - - - - - - - - - - - - - - - - - - - - - - -
> Those who do not understand Unix are condemned to reinvent it, poorly.
> -- Henry Spencer


Répondre à