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.
# chemins absolu
Posté par nanodots . Évalué à 2.
Essaies de mettre des chemins absolu vers tes exécutables (/usr/bin/rsync) dans ton script.
J'espère que ca répondra à ton problème.
[^] # Re: chemins absolu
Posté par hecat . Évalué à 1.
J'ai inclu le chemin complet pour rsync.
Le résultat est le même.
Lancé à la mano, ça passe, avec crontab, rsync a de nouveau un problème avec la source.
J'ai modifié le script pour supprimer les variables:
mount /dev/sdc1 /mnt/usbdisk 2>&1
fusesmb /mnt/voisinage 2>&1
/usr/bin/rsync --archive --human-readable --delete --stats /mnt/voisinage/PDADOM01/PDASERV0103/D$/ /mnt/usbdisk/PDASERV0103/D 2>&1
umount /mnt/usbdisk 2>&1
umount /mnt/voisinage 2>&1
Voila, c'est encore plus simple comme ça.
Donc il ne fait que copier le contenu de D$ vers /mnt/usbdisk/PDASERV0103/D
J'ai essayé avec /mnt/voisinage/PDADOM01/PDASERV0103/D\$/
(antislash devant $). Pareil...
# SELinux?
Posté par lom (site web personnel) . Évalué à 1.
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 . Évalué à 1.
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 Étienne . Évalué à 2.
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
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.