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 :

Question d'un débutant / copie fichiers avancé


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 7
    Par défaut Question d'un débutant / copie fichiers avancé
    Bonjour à tous,

    je viens de débuter en shell et j'aurai besoin de vos lumières pour réaliser mon premier script.


    Je m'explique, mon script devrait permettre de copier les fichiers qui vient d'être mis à jour avec leurs arborescences (répertoires) si ceux-ci n'existe pas encore vers un répertoire destinataire.


    Exemple

    REP_SOURCE="/home/chawa/source/"
    REP_DEST="/home/chawa/dest/"


    Dans le répertoire source, il y a des sous répertoires comme

    source
    +toto
    +tumtum
    kaka.xml
    index.html
    blabla.txt
    bibi.jpg

    +tata
    yahoo.jpg
    google.jpg

    +titi
    +yuyu
    kiki.xml
    index.html
    show.jpg

    Et le répertoire dest est vide



    Pour l'instant, j'ai trouvé comment récupérer la liste des fichiers qui vient d'être mis à jour dans le répertoire source. Mais comment faire pour les copier en créant les répertoires si ceci n'existe pas encore dans le répertoire destination "/dest/"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    FILE_LIST_COPY=$(find REP_SOURCE -mtime -3)
    Enfin, quelle est la meilleur solution pour recopier ces fichiers directement avec son arborescences svp.


    Je vous remercie par avance pour toutes les réponses.

    Chawa

  2. #2
    Membre émérite Avatar de jmelyn
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2007
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Septembre 2007
    Messages : 703
    Par défaut
    Bonsoir,

    C'est un problème de base pour l'administration système. Il y a donc une solution relativement simple... Il s'agit de la commande rsync. Avec des options comme -r, -l, --delete, il y a de nombreux problèmes que l'on peut résoudre avec cette commande. Le mieux est de lire la man page (man rsync), d'essayer et de demander pour tel ou tel détail.

    Bon courage.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 7
    Par défaut
    Bonjour jmelyn,

    Merci beaucoup pour la solution que vous m'avez donné.
    J'ai fini par laisser tomber le script que j'avais commencé


    Voici ce que j'ai appliqué pour mes besoins, avec les options suivantes :

    -a est utilisé pour mode archive.
    -g est utilisé pour préserver les permissions de “groupe” de la source vers la cible
    -E est utilisé pour préserver les permissions d'exécution de la source vers la cible.
    -v permet de passer en mode verbose et de voir en direct la liste des fichiers copiés
    -z est utilisé pour compresser les données à transférer ou copier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    #!/bin/bash
     
    REP_SOURCE="/home/chawa/source/"
    REP_DEST="/home/chawa/dest/"
     
    rsync -agEvz $REP_SOURCE $REP_DEST
    Enfin, il me reste qu'à l'ajouter dans le crontab.


    Je vous souhaite une très bonne après-midi.

    Merci

  4. #4
    Membre émérite Avatar de jmelyn
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2007
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Septembre 2007
    Messages : 703
    Par défaut
    Bravo pour la recherche.
    Attention à bien tester, j'écris souvent:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     rsync [-options] $srcPath/* $dstPath
    ce qui logiquement place le contenu de $srcPath dans $dstPath. sinon j'obtiens:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    rsync [-options] /srcDir /dstDir
    ls /dstDir
    srcDir

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 7
    Par défaut
    Merci pour les infos supplémentaires. j'en prends note.

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

Discussions similaires

  1. Copie de fichiers avancée
    Par koKoTis dans le forum VBScript
    Réponses: 35
    Dernier message: 14/01/2008, 15h11
  2. [Débutant] copie de fichiers en gardant l'arborescence
    Par Yannos94 dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 21/11/2007, 13h37
  3. [Débutant]Copie de fichier
    Par fx007 dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 01/05/2006, 18h55
  4. question de débutant - mode fichier
    Par zais_ethael dans le forum InterBase
    Réponses: 4
    Dernier message: 11/02/2006, 17h10
  5. [Projet débutant] copie de fichiers
    Par stephonline29 dans le forum Débuter
    Réponses: 13
    Dernier message: 10/11/2005, 14h01

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