IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Avis sur un script


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    792
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 792
    Par défaut
    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.

  3. #3
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Par défaut
    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

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    792
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 792
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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?

  5. #5
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Par défaut
    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

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    792
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 792
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

Discussions similaires

  1. Avis sur un script simpliste
    Par Rubbick dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 08/10/2010, 16h49
  2. [MySQL] vos avis sur un script qui fonctionne pas
    Par younek dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 25/12/2008, 16h47
  3. Besoin d'avis sur un script Tk (grosse appli inside)
    Par Arioch dans le forum Langage
    Réponses: 3
    Dernier message: 10/05/2007, 13h28
  4. [Blog] Votre avis sur ce script de Blog en PHP (GPL)
    Par peck dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 04/01/2007, 09h44
  5. [Sécurité] Vos avis sur mes scripts sécurisés
    Par nazoreen dans le forum Langage
    Réponses: 9
    Dernier message: 29/09/2006, 22h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo