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 :

Utilisation GZIP dans script bash


Sujet :

Shell et commandes GNU

  1. #1
    Membre très actif
    Profil pro
    Inscrit en
    Février 2007
    Messages
    248
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 248
    Par défaut Utilisation GZIP dans script bash
    Bonjour,

    J'espère me trouver au bon endroit pour poster ce message...

    J'essaye de faire un script bash de sauvegarde d'un site web. L'objectif, copie des fichiers dans un dossier temporaire, compression des fichiers, envoie sur un serveur via ssh.

    Mais malheureusement, je bloque sur la compression... j

    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
    #!/bin/bash
     
    # Emplacemment des different prog utilisé
    MYSQL="$(which mysql)"
    MYSQLDUMP="$(which mysqldump)"
    CHOWN="$(which chown)"
    CHMOD="$(which chmod)"
    GZIP="$(which gzip)"
     
    # Emplacemment du dossier de backup local
    DEST="//Users/moi/Desktop/backup/site_admin"
     
    #Date du jour
    NOW="$(date +"%Y-%m-%d_%H-%M-%S")"
     
    # Copie des fichiers dans le dossier temporairement
    cp -R /Library/WebServer/Documents/site-admin $DEST
     
    # Compression des fichiers
    $GZIP $DEST
    Lors de la compression du dossier, j'ai l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    gzip: //Users/moi/Desktop/backup/site_admin is a directory -- ignored
    J'ai essayé plein de chose, mais sans succès... quelqu'un pourrait-il m'aider ?

    Merci par avance

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Par défaut
    Salut,

    C'est quoi ce double slash dans ton chemin de destination ???

    # Emplacemment du dossier de backup local
    DEST="//Users/moi/Desktop/backup/site_admin"

  3. #3
    Membre très actif
    Profil pro
    Inscrit en
    Février 2007
    Messages
    248
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 248
    Par défaut
    Effectivement... j'ai supprimé le double / mais le problème ne viens pas de la puisque cela ne fonctionne toujours pas...

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Par défaut
    Parce qu'il te faut créer une archive avant de compresser :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tar cvzf archive.tar.gz $DEST
    Archive et compresse en même temps

  5. #5
    Membre très actif
    Profil pro
    Inscrit en
    Février 2007
    Messages
    248
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 248
    Par défaut
    Merci ça marche !

    Je n'avais effectivement pas connaissance de cette distinction en archive et compression... Pour moi il s'agissait toujours d'archives compressées d'où une seule opération !

  6. #6
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 811
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 811
    Billets dans le blog
    1
    Par défaut
    Salut

    La philosophie d'Unix, c'est que chaque programme ne fait qu'une chose mais le fait bien. Donc tu as gzip dont le but est de compresser de la data (ou du fichier) et tar dont le but est de créer une archive. Et c'est le mix des deux qui te donne ton "archive compressée".
    Exemple: archivage d'un dossier compression dans la foulée dans un fichier gz
    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    tar -cvf - rep |gzip -c9 >rep.tar.gz  # Le "-" de tar indique que l'archive sera créée en mémoire vive

    Ensuite tu as les exceptions à la philosophie où certaines commandes très utilisées possèdent des possibilités associées généralement à d'autres commandes. Ainsi, tar possède l'option "-z" qui lui permet de compresser en même temps qu'il archive
    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    tar -cvfz rep.tgz rep

    Tu remarqueras la subtile distinction. Un fichier créé par tar+gzip sera conventionnellement nommé ".tar.gz" et un fichier créé par tar -cvfz sera conventionnellement nommé ".tgz". Toutefois comme l'option "-z" de tar fait appel à l'algorithme gzip, les deux fichiers sont interchangeables (on peut donc utiliser tar -z pour extraire un fichier créé par tar |gzip et on peut utiliser gunzip |tar pour traiter un fichier créé par tar -cvfz)

    Citation Envoyé par zipe31 Voir le message
    Salut,

    C'est quoi ce double slash dans ton chemin de destination ???
    Ca n'a pas d'importance. Les règles de nommages imposent un slash minimum mais acceptent s'il y en a plusieurs accolés...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  7. #7
    Membre très actif
    Profil pro
    Inscrit en
    Février 2007
    Messages
    248
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 248
    Par défaut
    Merci pour cette explication on ne peut plus claire !

  8. #8
    Membre averti
    Femme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2011
    Messages : 54
    Par défaut
    Citation Envoyé par albedo0 Voir le message
    Merci pour cette explication on ne peut plus claire !
    Je voudrais aussi dire la même chose. Grand Merci à l'auteur !!
    Si je trouve tout le temps des explications si claires et si rationnelles comme celles-ci, je deviendrai Savant...

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

Discussions similaires

  1. Besoin d'explication pour test dans script Bash
    Par Jipété dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 27/10/2014, 12h45
  2. 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
  3. [SFTP] : utilisation dans un script bash sans intervention humaine (mot de passe)
    Par arnaudperfect dans le forum Shell et commandes GNU
    Réponses: 6
    Dernier message: 02/03/2011, 10h07
  4. Réponses: 1
    Dernier message: 24/04/2009, 11h23
  5. Utilisation variable dans script expect
    Par fdesarmes dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 27/07/2007, 11h53

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