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 22/01/2011, à 11:06

jrev

script de backup (résolu)

Bonjour,
J'utilise le script suivant tous les jours pour sauvegarder mes documents sur une clé USB :

#!/bin/bash
SOURCE_DIRS=/home/jean/Documents/
TARGET_DIR=/media/DOCUMENTS/

# monter le repertoire DOCUMENTS
mount /media/DOCUMENTS

rsync -av --del --stats $SOURCE_DIRS "$TARGET_DIR"

#démonter /media/DOCUMENTS
umount /media/DOCUMENTS


echo "Backup Terminé"

il faudrait que le script vérifie que le dossier /media/DOCUMENTS est bien démonté avant de nous dire "backup terminé"
Il se trouve en effet que, et ceci depuis très longtemps, parfois le dossier "DOCUMENTS" n'est pas démonté.

Ce qui fait que la mise à jour de mes documents se fait dans ce dossier non démonté et non pas dans la clé.
Pouvez-vous m'indiquer comment compléter mon script ?

Merci au geek qui passera par ici smile

Dernière modification par jrev (Le 26/01/2011, à 10:13)


Mal nommer les choses, c'est ajouter au malheur du monde

Hors ligne

#2 Le 22/01/2011, à 11:09

FRUiT

Re : script de backup (résolu)

umount /media/DOCUMENTS
while [ "$(mount | grep "/media/DOCUMENTS")" ]; do sleep 1; done
echo "Backup terminé"

(pas testé j'avoue mais ça devrait le faire)

Dernière modification par FRUiT (Le 22/01/2011, à 11:12)


Neon Suite by FRUiT (kde4.6) [url]http://[Merci de relire les règles]/yzm7cee[/url]
"Pour la carotte, le lapin est la plus parfaite incarnation du mal" (R. Sheckley)
clean

Hors ligne

#3 Le 22/01/2011, à 11:10

Levi59

Re : script de backup (résolu)

Je suis pas sûr d'avoir saisi la fin de ton message, (Document démonté à la fin de la copie sinon copie se fait dans le dossier de montage...)
Si ta clé est en extX, alors tu dois avoir un dossier Lost&Found à sa racine. Il te suffit de vérifier sa présence avant la copie. C'est une première idée.

Hors ligne

#4 Le 22/01/2011, à 11:25

ehmicky

Re : script de backup (résolu)

Salut,
Dans la même idée :

if grep -q "$TARGET_DIR" /etc/mtab
then
    echo "Backup terminé, mais $TARGET_DIR n'est pas démonté"
else
    echo "Backup terminé"
fi

Sinon, umount échoue parfois parce que l'un de tes terminaux se trouve dans l'un des sous-répertoires du répertoire monté, ou que tu utilises un fichier de ce dernier.


Stego++, bibliothèque libre de stéganographie (avec cryptographie), à venir !
Besoin de votre aide :
Stats sur les compilateurs C++ les plus utilisés
Comment utiliser les archetypes C++ ?

Hors ligne

#5 Le 22/01/2011, à 20:28

jrev

Re : script de backup (résolu)

Merci pour les réponses, je teste ça demain matin  smile


Mal nommer les choses, c'est ajouter au malheur du monde

Hors ligne

#6 Le 22/01/2011, à 20:44

Compte supprimé

Re : script de backup (résolu)

Ce qui fait que la mise à jour de mes documents se fait dans ce dossier non démonté et non pas dans la clé.

Est-ce que par hasard la cause ne serait pas plutôt  : "/media/Documents ne se monte pas" ?

#7 Le 23/01/2011, à 08:57

jrev

Re : script de backup (résolu)

Quand la faute est avérée, j'ai deux dossiers DOCUMENTS dans le dossier /media l'un que je peux démonter et l'autre pas car il a perdu sa liaison avec la clé.
Celui que je peux démonter n'est pas à jour, l'autre Oui, mais il n'est pas sur la clé smile
Quand il y a un dossier DOCUMENTS  dans /media à la fin du script, si je tape

#umount DOCUMENTS

J'ai la réponse DOCUMENTS  n'est pas monté

Si la clé n'est pas montée au départ du script , je vois défiler à l'écran tout le contenu de mon dossier Documents

Dernière modification par jrev (Le 23/01/2011, à 10:47)


Mal nommer les choses, c'est ajouter au malheur du monde

Hors ligne

#8 Le 23/01/2011, à 09:00

Compte supprimé

Re : script de backup (résolu)

mount /media/DOCUMENTS

C'est un extrait du script ou tu montes ta clé avec cette ligne ?
ta clé est-elle déclarée dans fstab ?

Dernière modification par Compte supprimé (Le 23/01/2011, à 09:12)

#9 Le 23/01/2011, à 09:08

Watael

Re : script de backup (résolu)

mountpoint est un utilitaire bien pratique.

point=/media/DOCUMENTS
if mountpoint -q "$point"; then echo "$point monté"; else echo "$point démonté"; fi

Dernière modification par Watael (Le 23/01/2011, à 09:08)


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#10 Le 23/01/2011, à 10:18

jrev

Re : script de backup (résolu)

Watael a écrit :

mountpoint est un utilitaire bien pratique.

point=/media/DOCUMENTS
if mountpoint -q "$point"; then echo "$point monté"; else echo "$point démonté"; fi

Ça me paraît tout à fait d'actualité
smile
Voilà mon script transformé :

#!/bin/bash
SOURCE_DIRS=/home/jean/Documents/
TARGET_DIR=/media/DOCUMENTS/
point=/media/DOCUMENTS

rsync -av --del --stats $SOURCE_DIRS "$TARGET_DIR"

#démonter /media/DOCUMENTS
umount /media/DOCUMENTS
umount /media/DOCUMENTS

if mountpoint -q "$point"; then echo "$point monté"; else echo "$point démonté"; fi

echo "Backup Terminé"

Et ça marche, Merci Watael wink

Dernière modification par jrev (Le 23/01/2011, à 10:48)


Mal nommer les choses, c'est ajouter au malheur du monde

Hors ligne

#11 Le 23/01/2011, à 10:28

jrev

Re : script de backup (résolu)

Tamarou a écrit :
mount /media/DOCUMENTS

C'est un extrait du script ou tu montes ta clé avec cette ligne ?
ta clé est-elle déclarée dans fstab ?

Regarde mon premier post.
Jamais été voir dans fstab. Quel intérêt ?

Dernière modification par jrev (Le 23/01/2011, à 10:30)


Mal nommer les choses, c'est ajouter au malheur du monde

Hors ligne

#12 Le 23/01/2011, à 10:48

Compte supprimé

Re : script de backup (résolu)

Et bien, d'après la doc, cette syntaxe ne monte que ce qui est défini dans fstab.

Sinon, il me semble qu'il faut utiliser mount /dev/sdx /mnt/machin

#13 Le 23/01/2011, à 10:50

Compte anonymisé

Re : script de backup (résolu)

Salut

Et pourquoi ne testes-tu pas le code retour de la commande mount/umount  -->  si ok 0 sinon # de 0.
En shell la variable $? donne le retour de la dernière commande passée.

@+

#14 Le 23/01/2011, à 10:55

jrev

Re : script de backup (résolu)

jeanjd63 a écrit :

Salut

Et pourquoi ne testes-tu pas le code retour de la commande mount/umount  -->  si ok 0 sinon # de 0.
En shell la variable $? donne le retour de la dernière commande passée.

@+

Merci mais comment intégrer ce test dans mon script ? ?

Je peux aussi intégrer la commande

cat /media/DOCUMENTS

pour voir si le /media est vide

En fait la commande de montage est inutile car la clé se monte automatiquement à l'en-fichage sur Ubuntu
Le problème est bien sur le démontage et la suggestion de Watael paraît fonctionner. just wait & see...

Dernière modification par jrev (Le 23/01/2011, à 11:23)


Mal nommer les choses, c'est ajouter au malheur du monde

Hors ligne

#15 Le 23/01/2011, à 11:05

jrev

Re : script de backup (résolu)

Tamarou a écrit :

Et bien, d'après la doc, cette syntaxe ne monte que ce qui est défini dans fstab.

Sinon, il me semble qu'il faut utiliser mount /dev/sdx /mnt/machin

les clés USB se montent toutes automatiquement et je ne connais pas le détail de cette opération.
C'est un point à creuser mais il n'y a guère de doc la-dessus à ma connaissance neutral


Mal nommer les choses, c'est ajouter au malheur du monde

Hors ligne

#16 Le 23/01/2011, à 11:19

Compte supprimé

Re : script de backup (résolu)

Tu peux faire le test suivant :
Demander à rsync de faire une sauvegarde dans un répertoire non monté : il te le créera, et tu sauvegarderas dans /.

Donc si la clé se monte automatiquement, alors je n'ai rien dit. Désolé.
Mais si elle ne se monte pas, c'est ce qui t'arrive, et le problème ne vient pas de umount mais de mount.

Dernière modification par Compte supprimé (Le 23/01/2011, à 11:20)

#17 Le 23/01/2011, à 11:26

jrev

Re : script de backup (résolu)

Tamarou a écrit :

Tu peux faire le test suivant :
Demander à rsync de faire une sauvegarde dans un répertoire non monté : il te le créera, et tu sauvegarderas dans /.

Donc si la clé se monte automatiquement, alors je n'ai rien dit. Désolé.
Mais si elle ne se monte pas, c'est ce qui t'arrive, et le problème ne vient pas de umount mais de mount.

Déjà fait, voir post #7

Dernière modification par jrev (Le 23/01/2011, à 11:27)


Mal nommer les choses, c'est ajouter au malheur du monde

Hors ligne

#18 Le 23/01/2011, à 11:51

Compte anonymisé

Re : script de backup (résolu)

jrev a écrit :
jeanjd63 a écrit :

Salut

Et pourquoi ne testes-tu pas le code retour de la commande mount/umount  -->  si ok 0 sinon # de 0.
En shell la variable $? donne le retour de la dernière commande passée.

@+

Merci mais comment intégrer ce test dans mon script ? ?

Je peux aussi intégrer la commande

cat /media/DOCUMENTS

pour voir si le /media est vide

En fait la commande de montage est inutile car la clé se monte automatiquement à l'en-fichage sur Ubuntu
Le problème est bien sur le démontage et la suggestion de Watael paraît fonctionner. just wait & see...


Et oui le montage se fait automatiquement, mais si pour une raison ou un autre il ne se fait pas, tu vas bien sûr aller écrire dans /media/DOCUMENTS mais pas sur la clé. Enfin c'est toi qui vois wink
Quand à moi, je testerai la présence d'un fichier "témoin" sur la clé afin d'être sûr.

Ensuite pour le test, je ne suis pas un pro du shell mais tu dois pouvoir écrire qq chose dans le style :

#démonter /media/DOCUMENTS
umount /media/DOCUMENTS

if  [  $? = 0 ]
   then  echo "Backup Terminé"
else  echo "Problème démontage"
fi

#19 Le 24/01/2011, à 08:27

jrev

Re : script de backup (résolu)

Bon,
J'ai choisi d'ajouter la commande

cat /media/Documents

pour avoir ou non la réponse

cat: /media/Documents: Aucun fichier ou dossier de ce type

ce qui laisse le script à la portée du débutant tongue

Dernière modification par jrev (Le 24/01/2011, à 08:33)


Mal nommer les choses, c'est ajouter au malheur du monde

Hors ligne

#20 Le 24/01/2011, à 09:15

Compte anonymisé

Re : script de backup (résolu)

Salut

Attention, ta commande : cat /media/Documents me parait assez bizarre. En effet Documents est un répertoire et sera toujours présent, que ta clé soit ou non montée.
Il faudrait créer sur la clé un fichier caché de type .flag et vérifier sa présence ou non présence pour savoir si la clé est montée ou non.

@+

#21 Le 24/01/2011, à 09:53

cep

Re : script de backup (résolu)

jrev a écrit :

Bon,
J'ai choisi d'ajouter la commande

cat /media/Documents

pour avoir ou non la réponse

cat: /media/Documents: Aucun fichier ou dossier de ce type

ce qui laisse le script à la portée du débutant tongue

Salut Jean,

Tu utilises la commande mountpoint en final, tu peux en faire de même au début.

Ou, plus simple, une condition pour lancer ton rsync du style :

if grep -q "/media/Documents/" /proc/mounts; then rsync ta_commande_complète ; fi

Tu peux même, encore plus simple, démonter au cas où et remonter, ou compléter par des "case", mais alors ce sera plus complexe.

Bonne continuation.
cep

Hors ligne

#22 Le 24/01/2011, à 22:53

TraGiKomiK

Re : script de backup (résolu)

Pas cool le doublon roll j'ai meme pas eu le temps de poser ma question a FRUiT du coup roll


Reste plus qu'a aller voir sur l'autre message le script que j'ai posté roll


Merci de mettre [RESOLU] dans le titre de votre post une fois le  probleme reglé!

GNU/Linux -> \o/

Hors ligne

#23 Le 24/01/2011, à 23:08

FRUiT

Re : script de backup (résolu)

Ben pose la ici du coup...


Neon Suite by FRUiT (kde4.6) [url]http://[Merci de relire les règles]/yzm7cee[/url]
"Pour la carotte, le lapin est la plus parfaite incarnation du mal" (R. Sheckley)
clean

Hors ligne

#24 Le 24/01/2011, à 23:30

TraGiKomiK

Re : script de backup (résolu)

@FRUiT: je t'ai envoyé un mail ne sachant pas si l'on se recroiserai sur ce post wink


Ma question etait (a peu pres):
Pourquoi des "" dans les variables et en les appelant? Sauf si celles ci font appels a des fonctions je n'en voit pas l'interet... Il suffit de proteger les espaces grace a \ (valable dans les variables).
Si je n'ai pas compris un truc merci de m'expliquer, serait ravi d'apprendre une chose en plus big_smile


Merci de mettre [RESOLU] dans le titre de votre post une fois le  probleme reglé!

GNU/Linux -> \o/

Hors ligne

#25 Le 24/01/2011, à 23:46

FRUiT

Re : script de backup (résolu)

TraGiKomiK a écrit :

@FRUiT: je t'ai envoyé un mail ne sachant pas si l'on se recroiserai sur ce post wink


Ma question etait (a peu pres):
Pourquoi des "" dans les variables et en les appelant? Sauf si celles ci font appels a des fonctions je n'en voit pas l'interet... Il suffit de proteger les espaces grace a \ (valable dans les variables).
Si je n'ai pas compris un truc merci de m'expliquer, serait ravi d'apprendre une chose en plus big_smile

Et bien les guillements permettent d'éviter de s'enquiquiner à rajouter des \. Surtout que si les espaces sont nombreux on a tôt fait d'en oublier un, de \. Après moi je trouve aussi ça bien plus lisible avec des guillemets (d'autant plus lorsque la coloration syntaxique de ton logiciel d'édition préféré met leur contenu en évidence) mais bon ça c'est personnel.

Les guillemets sont justement là pour ça alors autant les utiliser. Et puis il vaut mieux apprendre tout de suite à bien protéger le contenu de ses variables car lorsque leur contenu devient plus complexe qu'un simple nom de fichier, on ne peut pas vraiment tabler sur l'absence d'espaces, et il vaut mieux prévenir que guérir. Exemple si ta variable contient tour à tour une suite de noms de fichiers issus d'un ls, et non un seul, là tu ne sais pas protéger les espaces avec des \.

Sinon tu as raison les \ ça marche souvent.

Dernière modification par FRUiT (Le 24/01/2011, à 23:57)


Neon Suite by FRUiT (kde4.6) [url]http://[Merci de relire les règles]/yzm7cee[/url]
"Pour la carotte, le lapin est la plus parfaite incarnation du mal" (R. Sheckley)
clean

Hors ligne