Ecrire script shell (en bash)

Bonjour,

Je dois ecrire script shell (en bash) qui utilise la commande "rsync".

Le script va regarder un répertoire précis dans la machine X. Dès
qu'il voit apparaître des fichiers avec une extension précise, il devra le copier vers un machine Y dans un répertoire précis.
Je dois donné X et Y et leur répertoires respectifs en paramètre à ce script shell.

Vous pouvez m'aidez svp
Merci
Configuration: Linux
Firefox 2.0.0.13

13 réponses

  1. Contributeur
    Salut,

    Commence déjà par écrire l'algorithme de ton script et ensuite je t'aiderais.

    A+
    1. Merci pour la réponse.

      J'ai fais cet algorithme:

      boucler

      lister les fichiers du répertoire
      pour chaque fichier

      si extension = ".doc" alors

      synchroniser

      fin si

      fin pour

      fin boucle
      1. J'aui fais ça et ça marche bien:

        rsync -a source user@ip:Dest

        Mon problème est comment la lancer automatiquement cad à l'arivé du fichier.

        Merci
        1. Contributeur
          Je pense qu'il te faut faire des comparaison de fichiers.
          1. Pour commencer j'ai créé un fichier dans /home/user/essai/ avec l'extension .txt.
            Je veux le copier vers la destination. j'ai fais ce code:

            Code :

            txt= find *.txt
            rsync -a -e ssh /home/user/essai/$txt user@ip:Dest

            Mais l me copie tous le fichier essai.
            1. Merci pour votre aide

              Svp aisez moi à ecrire une boucle infinie qui teste à chaque fois l'existance d'un fichier avec l'extesion .txt par exemple
              De ce genre:

              while true
              do
              txt= find *.txt
              done

              Merci
              1. Bonjour,

                Svp je veux utilisé la commande: dnotify -CRM
                qui surveille des fichiers et répertoires et effectue une action en cas de changement.

                mais je veux seulement quand des fichiers avec une extension précises seront créé je lance mon script comment j'utilise la commande dnotify -CRM pour faire cela.

                Merci
                1. J'utilise la commande 'dnotify -CM' qui a pour objectif de surveiller mon repertoire.

                  Je lance mon script shell avec la commande "dnotify -CM /home/Stef/NePasModifier -e.monscript"

                  Mon script shell est le suivant:

                  #!/bin/bash
                  rsync -a -e ssh /home/user/*.txt usr@ ip: /home/user

                  Mais moi je veux copier juste le fichier qui vien d'être créé.
                  Quelqu'un m'a dis que rsync va synchroniser les répertoires. Si tous les fichiers avec l'extension txt sont déjà copiés, il ne va copier que celui qui vient d'être ajouté. Les autres ne seront pas recopiés.

                  Si c'est le cas mon problème est résolu, Sinon comment je fait
                  Svp aidez moi
                  1. Contributeur
                    En effet, c'est le cas, rsync va synchroniser uniquement le nouveau fichier.
                    a+