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 :

Scripts bash avec du SCP


Sujet :

Shell et commandes GNU

  1. #1
    Membre habitué
    Inscrit en
    Février 2006
    Messages
    268
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 268
    Points : 175
    Points
    175
    Par défaut Scripts bash avec du SCP
    Bonjour,

    Voila, j'ai fait un script qui va récupérer le dossier /etc/ de plusieurs équipements pour l'envoyer vers un serveur de sauvegarde de Conf.

    Cependant, j'aimerais rajouter la récupération d'un nouveau dossier (/root/scripts) qui, comme son nom l'indique var récupérer le dossier des scripts (bah oui, c'est sympa d'avoir la conf d'un équipement quand celui la plante pour le refaire assez vite, mais si on ne prend pas les scripts qui sont très utile c'est embêtant )

    Je n'ai pas réussi à trouver s'il était possible dans la même commande scp de copier 2 répertoires différents vers un destinataire.

    Donc pour moi j'ai 2 possibilités que je ne trouve pas très propre :

    1) Refaire un nouveau scp avec l'autre dossier (donc lancer à la suite 2 scp, ce qui est dommage car le 1er scp va se lancer, fermer la session pour en ré-ouvrir une 2eme)

    2) Rajouter dans le 1er dossier, un lien symbolique vers mon 2ème dossier (ce que je ne trouve pas très propre mais au moins ça marche )

    Voici mon script (qui sera amélioré plus tard).

    En gros, je vérifie si un dossier avec la date du jour existe, si oui je le supprime et je le recréais, si non je le créais tout simplement.

    Puis je vais lire un fichier csv, et pour chaque ligne, je vais lancer un scp pour récupérer le /etc.

    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
    #!/bin/bash -x
     
    ## Vérification si le dossier existe ##
    date=$(date '+%Y-%m-%d')
    dir="/data/Conf_eqpt/$1/Save_$date"
    if [ -d "$dir" ]; then
    echo "le dossier existe !"
    rm -rf $dir
    fi
     
    ## Création du dossier et sauvegarde des confs ##
    mkdir /data/Conf_eqpt/$1/Save_$date
    cat /root/Save_eqpt/noms.csv |sed "s/ /_/g" |while IFS=";" read nom ip
    do
    echo $nom
    sleep 3;
    mkdir /data/Conf_eqpt/$1/Save_$date/$nom
    scp -r -B -C -o ConnectTimeout=75 root@$ip:/etc/* /data/Conf_eqpt/$1/Save_$date/$nom/
    done
     
     
    ## Verifie si la sauvegarde c'est bien passée ##
    nb_ligne=$(cat /root/Save_eqpt/noms.csv | wc -l)
    nb_dossier=$(ls /data/Conf_eqpt/$1/Save_$date | wc -l)
    if [ $nb_ligne != $nb_dossier ]; then
    echo "La sauvegarde ne s'est pas bien passee." | mail -a "From: <a href="mailto:no-reply@tutu.com">no-reply@tutu.com</a>" -s "Erreur de la sauvegarde des equipements" <a href="mailto:alertes@tutu.com">alertes@tutu.com</a>
    fi
    echo FIN
    exit 0

    Si quelqu'un a une petite idée, je suis preneur avec volontiers

    Merci, et soyez indulgent, j'ai choisi le réseau car le développement était fâché avec moi, alors de temps en temps j'essaye de faire un peu de shell pour me réconcilier, mais il est repousse mes avances

  2. #2
    Expert éminent sénior Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Points : 12 264
    Points
    12 264
    Par défaut
    http://www.joycebabu.com/blog/copyin...-with-scp.html

    oui on peut faire plusieurs copies avec un seul scp si il y a qu'une destination


    une autre solution est de faire une compression de tout ce qui doit être envoyé et de de décomprésser à l'arrivé où il faut....


    genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tar -cf - /path/to/truc /anoth/erpath/to/machin | ssh -C destination 'cd /tmp && tar -xf - ; mv /tmp/truc /destination/truc ; mv /tmp/machin /destination/machin'

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Commande grep/sed dans script bash avec regex
    Par 1r2R1 dans le forum Shell et commandes GNU
    Réponses: 1
    Dernier message: 02/04/2014, 16h49
  2. Linux executer un script bash avec php
    Par xunil2003 dans le forum Langage
    Réponses: 0
    Dernier message: 01/07/2012, 11h15
  3. sftp dans un script bash avec .netrc
    Par mehdi_oca dans le forum Linux
    Réponses: 2
    Dernier message: 02/11/2010, 21h42
  4. Servet lance script bash avec droits insuffisants
    Par teto dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 07/09/2010, 13h20
  5. écrire un script bash avec des paramètres -r, -a
    Par Balbuzard dans le forum Linux
    Réponses: 4
    Dernier message: 17/12/2009, 13h03

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