Faire un don ! | | style | statistiques | contactez-nous | plan | lettre d'information

Programmation.shell : cron & rsync & fusesmb: "link_stat failed"

Posté par hecat () le 20 mars 2008

Bonjour !



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>&1




le cron job



21 9 * * * root /root/script/usb-backup.sh |mail -s USB toto@ici.fr



En 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 #915597.

SELinux?

Posté par lom (page perso, ) le 20/03/2008 à 15:03. (lien). Évalué à 1.

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?

    Posté par hecat () le 20/03/2008 à 16:23. (lien). Évalué à 1.

    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?

      Posté par Etienne () le 21/03/2008 à 16:28. (lien). Évalué à 2.

      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
      env
      dans 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