Programmation.shell : cron & rsync & fusesmb: "link_stat failed"
Posté par hecat () le 20 mars 2008Bonjour !
Voila un problème concernant un cron job qui éxécute un rscync entre une partition SMB (\\PDASERV0103\D$) est un disque USB (/mnt/usbdisk). OS: fedora Core 5.
En résumé le script lancé à la main fonctionne, lancé avec cron, ça ne fonctionne plus.
#! /bin/bash
# étape 1: les variables
OPT='--archive --human-readable --delete --stats'
DST=/mnt/usbdisk
REP1=/mnt/voisinage/PDADOM01/PDASERV0103/D$/rccmx_g
# étape 2: je monte ma partition Windows avec fusesmb
fusesmb /mnt/voisinage 2>&1
#étape 3: lancement de rsync
rsync $OPT $REP1 $DST/PDASERV0103 2>&1
umount /mnt/voisinage 2>&1le cron job
21 9 * * * root /root/script/usb-backup.sh |mail -s USB toto@ici.frEn retour j'obtiens systématiquement le même message d'erreur:
rsync: link_stat "/mnt/voisinage/PDADOM01/PDASERV0103/D$" failed: No such file or directory (2)Est-ce un problème de syntaxe bash ?
A+
N.
> Lire le message (5 commentaires, moyenne: 1,4).
Vous avez demandé le commentaire #915273.



SELinux?
Pour un probleme bizarre avec Fedora, surtout si c'est une histoire de difference avec la ligne de commande, mon premier reflexe serait de jetter un coup d'oeil vers la configuration de SELinux.
Ce n'est vraiment rien de plus qu'une idee, mais j'ai deja eu un probleme de ce style la, donc avec de la chance ca peut te pointer dans la bonne direction...
[^]Re: SELinux?
ahem...
SELinux, je connais pas... C'est une fonctionnalité de Fedora ?
J'ai perdu patience alors j'ai contourné le problème en montant la partition SMB avec mount.cifs (à la place de fusesmb).
La sauvegarde est en cours, ça a l'air de fonctionner.
Pour revenir sur cron j'aimerai bien aussi savoir pourquoi quand je lance un script qui affiche la date, celle-ci est affichée en français quand il est lancé à la main et en anglais quand cron le lance ?
ex:
echo `date +%T`Cron agit-il dans un environnement différent ? Comment le définir alors?
[^]Re: SELinux?
Parceque ton environnement n'est pas le même. Ton .bashrc n'est pas lu lorsque tu lance ton script par cron. Pour récupérer l'environnement utilisé par cron, tu peux mettre
envdans ton script, cela va t'afficher toutes tes variables d'environnement. C'est en général le principal problème lorsqu'un script marche sous un compte mais pas avec cron.
Etienne