Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 07/06/2016, à 11:49

sepia_support

Rsync pour sauvegarder sur HD externe USB seulement si monté

Voici ma commande sur crontab

00 13 * * 1-4 sudo rsync -r -t -p -o -v --progress --delete -c -l -D -z -s --stats /media/donnees      /media/sigistes/BUSIGJOUR1 # JOB_ID_6
BUSIGJOUR1 est un lecteur externe USB qu'on emmène le vendredi soir et qu'on rebranche le lundi matin

Le problème c'est que si le disque externe USB BUSIGJOUR1 n'est pas monté à 13h du lundi au vendredi, le système me crée automatiquement un répertoire BUSIGJOUR1 dans /media/sigistes/ et y colle le contenu de données
Sauf que données qui renvoie à un autre disque fait 1,5TO alors que mon disque système ne fait que 108 Go... donc crachage assuré par remplissage.

Comment faire pour que Rsync ne se déclenche pas si BUSIGJOUR1 n'est pas monté ?
Ou alors c'est mon montage de BUSIGJOUR1 qui est à revoir ?

Merci de vos retours

Hors ligne

#2 Le 07/06/2016, à 13:22

gl38

Re : Rsync pour sauvegarder sur HD externe USB seulement si monté

Quand ton disque est monté, il doit y avoir une entrée dans le dossier /media/user où user est ton nom. Cette entrée n'est pas là quand le disque n'est pas monté.
Je te suggère de faire un petit programme qui ressemble à ça

#!/bin/bash
if [ ! -e /media/user/disque]; then
	    exit
    fi
rsync -r -t -p -o -v --progress --delete -c -l -D -z -s --stats /media/donnees    /media/sigistes/BUSIGJOUR1

C'est bizarre que tu utilises (encore) /media/donnes et /media/sigistes, ton ubuntu n'est pas tout neuf ? Si tu n'as pas besoin du user, tu ne le mets pas.
Le sudo ne sert à rien : il n'y a qu'à mettre la commande dans le cron de root.
Cordialement,
Guy

Hors ligne

#3 Le 07/06/2016, à 13:34

soshy

Re : Rsync pour sauvegarder sur HD externe USB seulement si monté

J'aurai tendance a faire comme ca...

#!/bin/bash
if grep -qs '/media/sigistes ' /proc/mounts; then
    echo "Disque externe est monte, sauvegarde..."
    # la commande rsync
else
    echo "Disque externe non monte"
fi

/media/sigistes est a remplacer avec la bonne valeur (je me suis peut etre trompe).
Si tu fais cat /proc/mounts (avec le disque monte!) tu dois avoir tout un tas de lignes, et touver la bonne, par exemple :

/dev/sda1 /media/machin/truc ext4 rw,relatime,errors=remount-ro,data=ordered 0 0

Et avec une telle ligne il faut mettre /media/machin/truc

Dernière modification par soshy (Le 07/06/2016, à 13:42)

Hors ligne

#4 Le 07/06/2016, à 13:46

sepia_support

Re : Rsync pour sauvegarder sur HD externe USB seulement si monté

Salut

je fais tourner le poste sur la 14.04 LTS - j'attends l'été et un peu de dispo pour migrer sous 16.04 LTS

Mais peut-être que j'utilise une méthode de dinosaure ! en tout cas, quand je monte un disque sur une session c'est là que l'OS me le montre.

Bon je vais essayer vos petits programmes avant d'inscrire le lancement dans le cron

Je vais mettre ça dans le cron de root (et ça ne devrait pas poser de problème pour le déclenchement même si je suis sur une session utilisateur au moment où, c'est ça ?)

Merci de votre aide, je vous tiens au jus

Nico

Hors ligne

#5 Le 10/08/2016, à 09:10

sepia_support

Re : Rsync pour sauvegarder sur HD externe USB seulement si monté

Alors je vous donne quelques nouvelles après les vacances

Après avoir farfouillé sur le forum, j'ai opté pour les lignes suivantes

#!/bin/bash

x-terminal-emulator

if [ -d /media/sigistes/BUSIGJOUR1 ] ; then

    echo "busigjour1 est monté, la sauvegarde de lundi à jeudi 13 h est lancée" && sudo rsync -av --delete-after --stats /media/donnees    /media/sigistes/BUSIGJOUR1

else
        echo "busigjour1 n'est pas monté, la sauvegarde quotidienne est annulée"
fi

exit

Mais il me reste un souci : quand je lance le script dans un terminal rsync est vraiment verbeux
Quand je le lance dans le CRON, j'ai rien qui s'affiche ; j'ai essayé d'ouvrir un terminal d'où la première ligne ; mais rien ne s'affiche dedans

Je vais ouvrir un nouveau post mais je ne mets pas en résolu celui-ci tout de suite

merci à tous

Hors ligne

#6 Le 13/08/2016, à 08:47

Sub0

Re : Rsync pour sauvegarder sur HD externe USB seulement si monté

- rsync a une option quiet.
- pourquoi tu veux faire ouvrir un terminal à cron ? cron a un shell propre, avec ses variables d’environnement.
Tu ferais mieux de rediriger sa sortie vers un fichier (en /tmp ?) si tu veux débugger, ou un message quelconque montrant que le script est bien passé.
Il est aussi possible d’indiquer un fichier de log à rsync (man rsync).


Seule alternative au bépo acceptée = stylo/papier.

Hors ligne