crontab : problème d'execution d'un script

crontab : problème d'execution d'un script - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 21-10-2005 à 09:49:18    

Bonjour,
 
 
Je souhaite sauvegarder tous les jours à une heure précise le contenu total d'un répertoire sur une autre machine et pour cela j'ai utilisé cron.
 
Ma machine hote est un linux (avec une mandrake 10.1) et la cible est un serveur de fichier NAS que j'ai monté avec smb.
 
J'ai inséré la ligne suivante dans le fichier /etc/crontab :
 

Code :
  1. 00 23 * * * root /root/sauvegarde


 
et le script de sauvegarde est :
 

Code :
  1. A=$(date +cvsroot-%Y%m%d-%H%M%S.tgz)
  2. tar czf /mnt/020_BE/CVSSAVE/$A /var/cvsroot


 
 
Le script s'exécute bien à l'heure demandée mais il ne se termine pas correctement. En effet, lorsque je le lance manuellement, la sauvegarde s'effectue bien ( 50 MO de sources , donc environ 1mn pour tout sauvegarder), mais lorsque c'est cron qui le lance, le script ne génère qu'un fichier de 130-140 ko qui est bien sur incomplet.
 
J'ai l'impression que le processus est tué avant la fin de son exécution. Ai je fait une erreur ou n'y a-t-il pas possibilité de lancer un script qui dure assez longtemps ?
 
Je vous remercie d'avance pour vos réponses :)

Reply

Marsh Posté le 21-10-2005 à 09:49:18   

Reply

Marsh Posté le 21-10-2005 à 10:42:08    

Dans ta crontab tu devrais rediriger la sortie de ton script vers un fichier de log pour voir plus précisément ce qu'il fait :
 
00 23 * * * /root/sauvegarde > /mon/log/a/moi.log 2>&1

Reply

Marsh Posté le 21-10-2005 à 10:50:52    

tu pourras aussi mettre :
/bin/tar à la place de tar

Reply

Marsh Posté le 21-10-2005 à 11:08:17    

C'est fou ca !!!!
 
 
 
Quand je mets la ligne que tu m'as proposé de rajouter pour vérifier si ca se passe bien, la sauvegarde se fait parfaitement.
 
 
Je ne comprends pas ce qu'il se passe, peux tu me détailler précisément ce que signifie 2>&1 ?
 
 
Merci :)

Reply

Marsh Posté le 21-10-2005 à 13:49:00    

il y avait un topic sur OSA qui présentait les mêmes symptômes. AMHA, le programme tar a besoin que ses sorties (erreur ou standard) soient récupérées. Donc que tu ajoutes 2>&1 tu rediriges le flux erreur (2) vers la sortie standard (1) qui est redirigée dans un fichier.
http://www.root66.net/linux/Linux- [...] unix-5.htm


Message édité par jlighty le 21-10-2005 à 13:49:54
Reply

Marsh Posté le 21-10-2005 à 13:56:37    

Dans ton message d'origine, tu avais indiqué ça :
 

Citation :

00 23 * * * root /root/sauvegarde


A mon avis la colonne root est de trop, non ?

Reply

Marsh Posté le 21-10-2005 à 14:04:23    

peut être si il aurait éditer sa crontab par la commande "crontab -e" la colonne root est de trop. Par contre en /etc/crontab on doit pouvoir spécifier l'utilisateur qui lance le script.

Reply

Marsh Posté le 21-10-2005 à 16:23:00    

Mouais, c'est à mon avis une mauvaise habitude de modifier directement /etc/crontab, après on est paumé quand on se retrouve sur un autre système -> 1 utilisateur / 1 crontab, c'est plus propre

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed