Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 21/07/2006, 17h29   #1
Rédacteur/Modérateur
 
Avatar de gorgonite
 
Homme Nicolas Vallée
Ingénieur Système
Inscription : décembre 2005
Messages : 9 675
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Vallée
Âge : 27
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur Système
Secteur : Transports

Informations forums :
Inscription : décembre 2005
Messages : 9 675
Points : 14 290
Points : 14 290
Par défaut Avis sur un script

Bonjour,


Je souhaiterais avoir votre avis sur un script qui doit servir en mode "cron" afin de faire des sauvegardes sur un réseau d'entreprise ayant au plus 10 machines...

Les machines clientes sont sous windows, et stockent leurs propres données... certaines sont sauvegardées à chaque horaire de pause sur le serveur, puis seront accessibles en lecture seule par un serveur samba, pour des restaurations rapides. Elles seront également graver sur un dvd+rw tous les soirs.

Le but de la manoeuvre est de ne pas avoir à se soucier d'autre chose que de mettre un dvd dans le graveur à temps (en gros, chaque matin... et on fait une rotation)

le script fonctionne, mais je préférerais qu'il soit blindé... donc tous les avis constructifs sont bons à prendre


Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#! /bin/bash
ISO_MOUNTPATH="/mnt/graveur"
ISO_REMOTEPATH=""
USER_LIST="/home/sauvegarde/sauv_users.txt"
if [ -r ${USER_LIST} ]
then
        USERS=`cat ${USER_LIST}`
else
        echo "Impossible de lire ${USER_LIST}"
        exit 1
fi
USERS=`cat ${USER_LIST}`
DIRS=""
DIR_LIST=""
for USERNAME in $USERS
do
        ln -s -f "/home/$USERNAME" /home/links/
        REMOTE_COMPUTER=`grep /mnt/$USERNAME /etc/fstab | awk -F ' ' '{print $1}' | awk -F '/' '{print $3}'`
        IS_ACTIVE=`nmblookup ${REMOTE_COMPUTER} | grep failed | wc -l`
        if [ ${IS_ACTIVE} -lt 1 ]
        then
                mount /mnt/$USERNAME
        else
                echo "Impossible de se connecter à ${REMOTE_COMPUTER}"
                continue
        fi
        DIR_LIST="/home/sauvegarde/${USERNAME}.dir"
        if [ -r ${DIR_LIST} ]
        then
                DIRS=`cat ${DIR_LIST}`
        else
                echo "Impossible de lire ${DIR_LIST}"
                continue
        fi
        for DIR in $DIRS
        do
                if [ -d /mnt/$USERNAME/$DIR ]
                then
                        mkdir -p /home/$USERNAME/$DIR
                        cd /home/$USERNAME/$DIR
                        cp -r "/mnt/$USERNAME/$DIR/"* .
                else
                        echo "Impossible de copier /mnt/$USERNAME/$DIR"
                        continue
                fi
        done
        sync
        umount /mnt/$USERNAME
        sleep 5
done
LABEL=`date +"%Y_%m_%d"`
ISO_FILENAME="/home/sauvegarde/${LABEL}.iso"
mkisofs -f -R -r -J -V "$LABEL" -o "${ISO_FILENAME}" /home/links
REMOTE_COMPUTER=`grep ${ISO_MOUNTPATH} /etc/fstab | awk -F ' ' '{print $1}' | awk -F '/' '{print $3}'`
IS_ACTIVE=`nmblookup ${REMOTE_COMPUTER} | grep failed | wc -l`
if [ ${IS_ACTIVE} -lt 1 ]
then
        mount ${ISO_MOUNTPATH}
else
        echo "Impossible de se connecter à ${REMOTE_COMPUTER}"
        exit 1
fi
cp "${ISO_FILENAME}" "${ISO_MOUNTPATH}/${ISO_REMOTEPATH}"
sync
touch "${ISO_MOUNTPATH}/${ISO_REMOTEPATH}/gravure_ok.txt"
sync
umount ${ISO_MOUNTPATH}
#rm -f "${ISO_FILENAME}"
rm /home/links/*
__________________
Evitez les MP pour les questions techniques... il y a des forums
Contributions sur DVP : Mes Tutos | Mon Blog

Dernière modification par gorgonite ; 21/07/2006 à 22h37.
gorgonite est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/07/2006, 19h15   #2
Membre émérite
 
Inscription : mai 2004
Messages : 708
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations forums :
Inscription : mai 2004
Messages : 708
Points : 853
Points : 853
As-tu envisagé rsync pour tes back-up? Seuls les fichiers changés sont sauvegardés. Tu pourrais facilement l'intégrer dans ton script.
__________________
:q :q! :wq :w :w! :wq! :quit :quit! :help help helpquit quit quithelp
:quitplease :quitnow :leave :shit ^X^C ^C ^D ^Z ^Q QUITDAMMIT
Jabber: ripat at im.apinc.org
ripat est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/07/2006, 19h55   #3
Rédacteur/Modérateur
 
Avatar de gorgonite
 
Homme Nicolas Vallée
Ingénieur Système
Inscription : décembre 2005
Messages : 9 675
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Vallée
Âge : 27
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur Système
Secteur : Transports

Informations forums :
Inscription : décembre 2005
Messages : 9 675
Points : 14 290
Points : 14 290
Citation:
Envoyé par ripat
As-tu envisagé rsync pour tes back-up? Seuls les fichiers changés sont sauvegardés. Tu pourrais facilement l'intégrer dans ton script.

rsync marche sous windows ?
__________________
Evitez les MP pour les questions techniques... il y a des forums
Contributions sur DVP : Mes Tutos | Mon Blog
gorgonite est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/07/2006, 20h56   #4
Membre émérite
 
Inscription : mai 2004
Messages : 708
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations forums :
Inscription : mai 2004
Messages : 708
Points : 853
Points : 853
Oui, bien sûr. Dès que tu fais un mnt -t smbfs ce répertoire est vu comme un répertoire Linux. Rsync n'y voit que du feu.

Voici ce que je fais pour mes backup des stations windows:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# si pas de mnt -> mnt
if test ! -d /mnt/smb/toto
then
    sudo mount -t smbfs -o username='Toto',password='zzzz' //toto/Data /mnt/smb
fi
 
# copie et synchronisation des fichiers
    # tous les doc xls de windows -> debian
    SRC='/mnt/smb/'
    DEST='/home/toto/backup'
    INCLUDE='/etc/rsync_include_toto'
    rsync -av --include-from=$INCLUDE $SRC $DEST
 
# umount
sudo umount /mnt/smb
Le fichier rsync_include_toto contient ceci:

Code :
1
2
3
4
5
6
7
8
9
10
# BACKUP TOTO -> DEBIAN
# inclusion de tous les répertoires et sous-répertoires
/**/
 
# inclusion xls et doc
*.xls
*.doc
 
# exclusion de tout le reste
- *
Bon, j'ai un peu pataugé dans le fichier include de rsync, mais ça marche comme ça.

Dans ton script, si j'ai bien compris tu vérifies dans fstab le nom du netbios des utilisateurs windows et s'ils existent tu mnt. Que font-ils dans fstab? Il sont déjà mnté au boot? Pourquoi le re-mnter alors?
__________________
:q :q! :wq :w :w! :wq! :quit :quit! :help help helpquit quit quithelp
:quitplease :quitnow :leave :shit ^X^C ^C ^D ^Z ^Q QUITDAMMIT
Jabber: ripat at im.apinc.org
ripat est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/07/2006, 21h37   #5
Rédacteur/Modérateur
 
Avatar de gorgonite
 
Homme Nicolas Vallée
Ingénieur Système
Inscription : décembre 2005
Messages : 9 675
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Vallée
Âge : 27
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur Système
Secteur : Transports

Informations forums :
Inscription : décembre 2005
Messages : 9 675
Points : 14 290
Points : 14 290
Citation:
Envoyé par ripat
Bon, j'ai un peu pataugé dans le fichier include de rsync, mais ça marche comme ça.
et on peut tout prendre, vu que je sélectionne les répertoires utiles ?

Citation:
Envoyé par ripat
Dans ton script, si j'ai bien compris tu vérifies dans fstab le nom du netbios des utilisateurs windows et s'ils existent tu mnt. Que font-ils dans fstab? Il sont déjà mnté au boot? Pourquoi le re-mnter alors?
ils sont dedans pour faciliter ma gestion... mais avec l'option noauto
__________________
Evitez les MP pour les questions techniques... il y a des forums
Contributions sur DVP : Mes Tutos | Mon Blog
gorgonite est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/07/2006, 21h57   #6
Membre émérite
 
Inscription : mai 2004
Messages : 708
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations forums :
Inscription : mai 2004
Messages : 708
Points : 853
Points : 853
Citation:
Envoyé par gorgonite
et on peut tout prendre, vu que je sélectionne les répertoires utiles ?
Oui, c'est même plus simple. J'avoue avoir eu quelques difficultés à comprendre le logique des fichiers "include-from".

Pour tout copier, fais simplement:
Si tu as un autre serveur sous le coude, tu peux même t'épargner de jouer au disk jockey en utilisant ce serveur distant comme destination du rsync (par ssh, par exemple et en mode compressé pour économiser de la bp):

Code :
1
2
DEST='utilisateur@serveur_distant:/chemin/vers/destination/backup/'
rsync -azv -e ssh $SRC $DEST
Il faut dans ce cas que la connexion ssh se fasse sans mot de passe par échange de clés publiques.

Les premiers backups seront un peu longs (selon la vitesse de connexion adsl ou lan) mais ensuite, seuls les fichiers modifiés seront copiés.
__________________
:q :q! :wq :w :w! :wq! :quit :quit! :help help helpquit quit quithelp
:quitplease :quitnow :leave :shit ^X^C ^C ^D ^Z ^Q QUITDAMMIT
Jabber: ripat at im.apinc.org
ripat est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/07/2006, 22h44   #7
Rédacteur/Modérateur
 
Avatar de gorgonite
 
Homme Nicolas Vallée
Ingénieur Système
Inscription : décembre 2005
Messages : 9 675
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Vallée
Âge : 27
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur Système
Secteur : Transports

Informations forums :
Inscription : décembre 2005
Messages : 9 675
Points : 14 290
Points : 14 290
comme cela, ça te semble bien ?

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#! /bin/bash
ISO_MOUNTPATH="/mnt/graveur"
ISO_REMOTEPATH=""
USER_LIST="/home/sauvegarde/sauv_users.txt"
if [ -r ${USER_LIST} ]
then
        USERS=`cat ${USER_LIST}`
else
        echo "Impossible de lire ${USER_LIST}"
        exit 1
fi
USERS=`cat ${USER_LIST}`
DIRS=""
DIR_LIST=""
for USERNAME in $USERS
do
        ln -s -f "/home/$USERNAME" /home/links/
        REMOTE_COMPUTER=`grep /mnt/$USERNAME /etc/fstab | awk -F ' ' '{print $1}' | awk -F '/' '{print $3}'`
        IS_ACTIVE=`nmblookup ${REMOTE_COMPUTER} | grep failed | wc -l`
        if [ ${IS_ACTIVE} -lt 1 ]
        then
                mount /mnt/$USERNAME
        else
                echo "Impossible de se connecter à ${REMOTE_COMPUTER}"
                continue
        fi
        DIR_LIST="/home/sauvegarde/${USERNAME}.dir"
        if [ -r ${DIR_LIST} ]
        then
                DIRS=`cat ${DIR_LIST}`
        else
                echo "Impossible de lire ${DIR_LIST}"
                continue
        fi
        for DIR in $DIRS
        do
                if [ -d /mnt/$USERNAME/$DIR ]
                then
                        if [ -d /home/$USERNAME/$DIR ]
							usleep 1
						else
							mkdir -p /home/$USERNAME/$DIR
						fi
                        #cd /home/$USERNAME/$DIR
                        #cp -r "/mnt/$USERNAME/$DIR/"* .
						rsync -av "/mnt/$USERNAME/$DIR/" "/home/$USERNAME/$DIR"
                else
                        echo "Impossible de copier /mnt/$USERNAME/$DIR"
                        continue
                fi
        done
        sync
        umount /mnt/$USERNAME
        sleep 5
done
LABEL=`date +"%Y_%m_%d"`
ISO_FILENAME="/home/sauvegarde/${LABEL}.iso"
mkisofs -f -R -r -J -V "$LABEL" -o "${ISO_FILENAME}" /home/links
REMOTE_COMPUTER=`grep ${ISO_MOUNTPATH} /etc/fstab | awk -F ' ' '{print $1}' | awk -F '/' '{print $3}'`
IS_ACTIVE=`nmblookup ${REMOTE_COMPUTER} | grep failed | wc -l`
if [ ${IS_ACTIVE} -lt 1 ]
then
        mount ${ISO_MOUNTPATH}
else
        echo "Impossible de se connecter à ${REMOTE_COMPUTER}"
        exit 1
fi
cp "${ISO_FILENAME}" "${ISO_MOUNTPATH}/${ISO_REMOTEPATH}"
sync
touch "${ISO_MOUNTPATH}/${ISO_REMOTEPATH}/gravure_ok.txt"
sync
umount ${ISO_MOUNTPATH}
#rm -f "${ISO_FILENAME}"
rm /home/links/*
__________________
Evitez les MP pour les questions techniques... il y a des forums
Contributions sur DVP : Mes Tutos | Mon Blog
gorgonite est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/07/2006, 22h50   #8
Rédacteur/Modérateur
 
Avatar de gorgonite
 
Homme Nicolas Vallée
Ingénieur Système
Inscription : décembre 2005
Messages : 9 675
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Vallée
Âge : 27
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur Système
Secteur : Transports

Informations forums :
Inscription : décembre 2005
Messages : 9 675
Points : 14 290
Points : 14 290
en revanche, avec ma méthode, les répertoires avec un espace dans le nom ne passent pas, ie les répertoires nommés dans ${USERNAME}.dir doivent ne pas avoir d'espaces dans leur nom

si quelqu'un a une idée...
__________________
Evitez les MP pour les questions techniques... il y a des forums
Contributions sur DVP : Mes Tutos | Mon Blog
gorgonite est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/07/2006, 00h40   #9
Rédacteur
 
Avatar de Arnaud F.
 
Homme Arnaud Feltz
Développeur .NET
Inscription : août 2005
Messages : 5 213
Détails du profil
Informations personnelles :
Nom : Homme Arnaud Feltz
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur .NET
Secteur : Transports

Informations forums :
Inscription : août 2005
Messages : 5 213
Points : 6 122
Points : 6 122
Ben je sais pas si c'est ce que tu cherche, mais banalise les espaces qui sont dans le fichier contenu dans ${DIR_LIST} via un tr par exemple ( désolé si c'est une anerie mais je tente ma chance en disant ça )

@ +
__________________
C'est par l'adresse que vaut le bûcheron, bien plus que par la force. Homère

Installation de Code::Blocks sous Debian à partir de Nightly Builds
Arnaud F. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/07/2006, 10h50   #10
Membre émérite
 
Inscription : mai 2004
Messages : 708
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations forums :
Inscription : mai 2004
Messages : 708
Points : 853
Points : 853
Citation:
Envoyé par gorgonite
en revanche, avec ma méthode, les répertoires avec un espace dans le nom ne passent pas, ie les répertoires nommés dans ${USERNAME}.dir doivent ne pas avoir d'espaces dans leur nom

si quelqu'un a une idée...
Ça, c'est la faute à Windows (quelle idée de mettre des espaces dans les noms de fichier!).

Par contre, pourquoi parcours-tu les répertoires récursivements? Rsync peut faire ça pour toi il me semble. Il n'aura peut-être pas les problèmes d'espace lui!

Je teste et je reviens...

Edit:
Alors voilà, je confirme, rsync gère parfaitement bien les noms de répertoire et fichiers avec espaces ou caractères accentués qui, eux, seront remplacés par un ?.

Je confirme également que l'option -a est une super-option qui comprend, entre-autres, l'option -r pour récursif.
__________________
:q :q! :wq :w :w! :wq! :quit :quit! :help help helpquit quit quithelp
:quitplease :quitnow :leave :shit ^X^C ^C ^D ^Z ^Q QUITDAMMIT
Jabber: ripat at im.apinc.org

Dernière modification par ripat ; 22/07/2006 à 11h02. Motif: Résultat de test.
ripat est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/07/2006, 17h06   #11
Rédacteur/Modérateur
 
Avatar de gorgonite
 
Homme Nicolas Vallée
Ingénieur Système
Inscription : décembre 2005
Messages : 9 675
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Vallée
Âge : 27
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur Système
Secteur : Transports

Informations forums :
Inscription : décembre 2005
Messages : 9 675
Points : 14 290
Points : 14 290
Citation:
Envoyé par ripat
Par contre, pourquoi parcours-tu les répertoires récursivements? Rsync peut faire ça pour toi il me semble. Il n'aura peut-être pas les problèmes d'espace lui!

c'est que je sélectionne uniquement certains répertoires à sauvegarder
le problème survient lorsque le chemin d'un de ses répertoires (définis par l'utilisateur... ou windows comme "C:\Documents and Settings\username\...") contient un espace
__________________
Evitez les MP pour les questions techniques... il y a des forums
Contributions sur DVP : Mes Tutos | Mon Blog
gorgonite est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/07/2006, 17h07   #12
Rédacteur/Modérateur
 
Avatar de gorgonite
 
Homme Nicolas Vallée
Ingénieur Système
Inscription : décembre 2005
Messages : 9 675
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Vallée
Âge : 27
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur Système
Secteur : Transports

Informations forums :
Inscription : décembre 2005
Messages : 9 675
Points : 14 290
Points : 14 290
Citation:
Envoyé par buchs
Ben je sais pas si c'est ce que tu cherche, mais banalise les espaces qui sont dans le fichier contenu dans ${DIR_LIST} via un tr par exemple ( désolé si c'est une anerie mais je tente ma chance en disant ça )

pas tout compris... tu peux montrer la ligne de commande, car je viens de lire http://man.developpez.com/man1/tr.1.php et je ne vois pas trop en quoi ça va m'aider
__________________
Evitez les MP pour les questions techniques... il y a des forums
Contributions sur DVP : Mes Tutos | Mon Blog
gorgonite est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/07/2006, 17h09   #13
Rédacteur/Modérateur
 
Avatar de gorgonite
 
Homme Nicolas Vallée
Ingénieur Système
Inscription : décembre 2005
Messages : 9 675
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Vallée
Âge : 27
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur Système
Secteur : Transports

Informations forums :
Inscription : décembre 2005
Messages : 9 675
Points : 14 290
Points : 14 290
voici la version actuelle...

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#! /bin/bash
ISO_MOUNTPATH="/mnt/graveur"
ISO_REMOTEPATH=""
USER_LIST="/home/sauvegarde/sauv_users.txt"
if [ -r ${USER_LIST} ]
then
        USERS=`cat ${USER_LIST}`
else
        echo "Impossible de lire ${USER_LIST}"
        exit 1
fi
USERS=`cat ${USER_LIST}`
DIRS=""
DIR_LIST=""
for USERNAME in $USERS
do
        ln -s -f "/home/$USERNAME" /home/links/
        REMOTE_COMPUTER=`grep /mnt/$USERNAME /etc/fstab | awk -F ' ' '{print $1}' | awk -F '/' '{print $3}'`
        IS_ACTIVE=`nmblookup ${REMOTE_COMPUTER} | grep failed | wc -l`
        if [ ${IS_ACTIVE} -lt 1 ]
        then
                mount /mnt/$USERNAME
        else
                echo "Impossible de se connecter à ${REMOTE_COMPUTER}"
                continue
        fi
        DIR_LIST="/home/sauvegarde/${USERNAME}.dir"
        if [ -r ${DIR_LIST} ]
        then
                DIRS=`cat ${DIR_LIST}`
        else
                echo "Impossible de lire ${DIR_LIST}"
                continue
        fi
        for DIR in $DIRS
        do
                if [ -d /mnt/$USERNAME/$DIR ]
                then
                        if [ -d /home/$USERNAME/$DIR ]
                        then
                                sleep 0
                        else
                                mkdir -p /home/$USERNAME/$DIR
                        fi
                        cd /home/$USERNAME/$DIR
                        #cp -r "/mnt/$USERNAME/$DIR/"* .
                        rsync -av "/mnt/$USERNAME/$DIR/"* .
                else
                        echo "Impossible de copier /mnt/$USERNAME/$DIR"
                        continue
                fi
        done
        sync
        umount /mnt/$USERNAME
        sleep 5
done
LABEL=`date +"%Y_%m_%d"`
ISO_FILENAME="/home/sauvegarde/${LABEL}.iso"
mkisofs -f -R -r -J -V "$LABEL" -o "${ISO_FILENAME}" /home/links
REMOTE_COMPUTER=`grep ${ISO_MOUNTPATH} /etc/fstab | awk -F ' ' '{print $1}' | awk -F '/' '{print $3}'`
IS_ACTIVE=`nmblookup ${REMOTE_COMPUTER} | grep failed | wc -l`
if [ ${IS_ACTIVE} -lt 1 ]
then
        mount ${ISO_MOUNTPATH}
else
        echo "Impossible de se connecter à ${REMOTE_COMPUTER}"
        exit 1
fi
cp "${ISO_FILENAME}" "${ISO_MOUNTPATH}/${ISO_REMOTEPATH}"
sync
touch "${ISO_MOUNTPATH}/${ISO_REMOTEPATH}/gravure_ok.txt"
sync
umount ${ISO_MOUNTPATH}
#rm -f "${ISO_FILENAME}"
rm /home/links/*
__________________
Evitez les MP pour les questions techniques... il y a des forums
Contributions sur DVP : Mes Tutos | Mon Blog
gorgonite est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/07/2006, 17h49   #14
Rédacteur
 
Avatar de Arnaud F.
 
Homme Arnaud Feltz
Développeur .NET
Inscription : août 2005
Messages : 5 213
Détails du profil
Informations personnelles :
Nom : Homme Arnaud Feltz
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur .NET
Secteur : Transports

Informations forums :
Inscription : août 2005
Messages : 5 213
Points : 6 122
Points : 6 122
Ben je pensais utiliser cette commande pour remplacer tout les espaces que tu rencontre par des underscore par exemple.

Mais bon, ça se trompe je fais fausse route
__________________
C'est par l'adresse que vaut le bûcheron, bien plus que par la force. Homère

Installation de Code::Blocks sous Debian à partir de Nightly Builds
Arnaud F. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/07/2006, 18h49   #15
Membre émérite
 
Inscription : mai 2004
Messages : 708
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations forums :
Inscription : mai 2004
Messages : 708
Points : 853
Points : 853
Tu as résolu les problèmes d'espaces dans tes noms de chemin?

Sinon, protège ta variable $DIR.

Code :
1
2
3
4
5
6
for DIR in "$DIRS"
        do
                if [ -d /mnt/$USERNAME/"$DIR" ]
                then
                        if [ -d /home/$USERNAME/"$DIR"
...
Si je comprends bien, tu cherches à sauvegarder les répertoires d'un utilisateur qui sont définis dans un fichier /home/sauvegarde/${USERNAME}.dir. J'insiste sur le fait que rsync peut lui-même se balader récursivement dans tes répertoires choisis. Tu évites ta boucle.

Il faudra définir un fichier include pour rsync et y mettre les répertoires que tu veux sauvegarder. Exemple, pour un utilisateur windows toto, tu fais un mnt sur un répertoire à sauvegarder. Dans ce répertoire il n'y a qu'un certain nombre de répertoires à sauvegarder récursivement (c-à-d. chacun des répertoires choisis et tous leurs sous-répertoires).

Code :
1
2
3
4
5
6
7
8
9
 
# ici le mnt de la station Windows
    mount -t smbfs (... etc ...) /mnt/smb/toto
 
# resync récursif
    SRC='/mnt/smb/toto/'
    DEST='/.../.../backup'
    INCLUDE='/.../.../.../rsync_include'
    rsync -av --include-from=$INCLUDE $SRC $DEST
Si tu ne veux "rsync" que certains répertoires du mnt, tu dois les inclures dans un fichier (ici rsync_include)

Celui-ci contiendra:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# inclusion spécifique de répertoires
 
# rép. "éclole élodie" et ses sous répertoires
?cole ?lodie/
?cole ?lodie/**
 
# rép. CUISINE et ses sous répertoires
CUISINE/
CUISINE/**
 
# rep. FESTIVITE et ses sous répertoires
FESTIVITES/
FESTIVITES/**
 
# exclusion de tout
- /*
Attentions aux accentués et comment il sont vus par linux.
__________________
:q :q! :wq :w :w! :wq! :quit :quit! :help help helpquit quit quithelp
:quitplease :quitnow :leave :shit ^X^C ^C ^D ^Z ^Q QUITDAMMIT
Jabber: ripat at im.apinc.org
ripat est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/07/2006, 20h18   #16
Rédacteur/Modérateur
 
Avatar de gorgonite
 
Homme Nicolas Vallée
Ingénieur Système
Inscription : décembre 2005
Messages : 9 675
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Vallée
Âge : 27
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur Système
Secteur : Transports

Informations forums :
Inscription : décembre 2005
Messages : 9 675
Points : 14 290
Points : 14 290
Citation:
Envoyé par buchs
Ben je pensais utiliser cette commande pour remplacer tout les espaces que tu rencontre par des underscore par exemple.

Mais bon, ça se trompe je fais fausse route

ben non surtout pas... faut que ce soit "identique" de l'autre côté
__________________
Evitez les MP pour les questions techniques... il y a des forums
Contributions sur DVP : Mes Tutos | Mon Blog
gorgonite est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/07/2006, 23h56   #17
Rédacteur
 
Avatar de Arnaud F.
 
Homme Arnaud Feltz
Développeur .NET
Inscription : août 2005
Messages : 5 213
Détails du profil
Informations personnelles :
Nom : Homme Arnaud Feltz
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur .NET
Secteur : Transports

Informations forums :
Inscription : août 2005
Messages : 5 213
Points : 6 122
Points : 6 122
Ah ok, dans ce cas je m'excuse, j'avais pas compris ça comme ça

Considère ma remarque comme nulle dans ce cas
__________________
C'est par l'adresse que vaut le bûcheron, bien plus que par la force. Homère

Installation de Code::Blocks sous Debian à partir de Nightly Builds
Arnaud F. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/07/2006, 23h59   #18
Rédacteur/Modérateur
 
Avatar de gorgonite
 
Homme Nicolas Vallée
Ingénieur Système
Inscription : décembre 2005
Messages : 9 675
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Vallée
Âge : 27
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur Système
Secteur : Transports

Informations forums :
Inscription : décembre 2005
Messages : 9 675
Points : 14 290
Points : 14 290
Citation:
Envoyé par buchs
Ah ok, dans ce cas je m'excuse, j'avais pas compris ça comme ça

Considère ma remarque comme nulle dans ce cas

pas grave, ça aurait pu être utile... dans un passage de stockage windows -> linux par exemple
__________________
Evitez les MP pour les questions techniques... il y a des forums
Contributions sur DVP : Mes Tutos | Mon Blog
gorgonite est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/07/2006, 00h02   #19
Rédacteur/Modérateur
 
Avatar de gorgonite
 
Homme Nicolas Vallée
Ingénieur Système
Inscription : décembre 2005
Messages : 9 675
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Vallée
Âge : 27
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur Système
Secteur : Transports

Informations forums :
Inscription : décembre 2005
Messages : 9 675
Points : 14 290
Points : 14 290
Citation:
Envoyé par ripat
Tu as résolu les problèmes d'espaces dans tes noms de chemin?
je viens d'en parler avec les intéressés... et ça leur convient comme cela

Citation:
Envoyé par ripat
Sinon, protège ta variable $DIR.

Code :
1
2
3
4
5
6
for DIR in "$DIRS"
        do
                if [ -d /mnt/$USERNAME/"$DIR" ]
                then
                        if [ -d /home/$USERNAME/"$DIR"
...

marche pas... pour la boucle for

Citation:
Envoyé par ripat
Si je comprends bien, tu cherches à sauvegarder les répertoires d'un utilisateur qui sont définis dans un fichier /home/sauvegarde/${USERNAME}.dir. J'insiste sur le fait que rsync peut lui-même se balader récursivement dans tes répertoires choisis.
ça me semblait une bonne idée... d'autant plus que la syntaxe n'est si terrible

mais, dans un premier temps, on préfère laisser quelque chose de simple pour habituer les utilisateurs... je garde ton idée sous le coude



quelqu'un voit d'autres petits détails à améliorer ???
__________________
Evitez les MP pour les questions techniques... il y a des forums
Contributions sur DVP : Mes Tutos | Mon Blog
gorgonite est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/09/2006, 10h01   #20
Rédacteur
 
Inscription : mars 2004
Messages : 1 300
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 1 300
Points : 1 450
Points : 1 450
juste une remarque :
pour "blinder" ton script test TOUT les codes retour (mount, mkisofs,.....)
__________________
Marc
Slackware for ever ......
BASH - KSH ( http://marcg.developpez.com/ksh/ )
MarcG est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 19h58.


 
 
 
 
Partenaires

Hébergement Web