Forum Linux.général Récupérer fichier de linux vers windows

Posté par .
Tags : aucun
0
8
août
2007
Bonjour à tous,


Je cherche une méthode pour récupérer un fichier de log d'un serveur linux vers un serveur windows. Cette récupération sera faite massivement, c'est à dire que ce fichier sera à récupérer sur un grand nombre de serveurs linux.

Existe t'il une solution coté linux ou windows pour solutionner le problème?


Merci d'avance,


paco
  • # SFTP

    Posté par . Évalué à 3.

    Un serveur ssh sur les linux, un client sftp sur le windows et un script "quivabien" ?

    SFTP : http://en.wikipedia.org/wiki/SSH_file_transfer_protocol
    • [^] # Re: SFTP

      Posté par . Évalué à 1.

      syslog ou équivalent est capable de centraliser les logs de differents serveur . ca peut etre déjà un bon point de départ!
      http://fr.wikipedia.org/wiki/Syslog

      Sinon, FTP ou SSH (avec clef RSA, of course) et un petit script et hop !
    • [^] # Re: SFTP

      Posté par . Évalué à 1.

      Pour info, j'avais essayé de faire du backup de postes Linux sur un serveur Windows en utilisant la fonction "synchronize" de winscp ( http://winscp.net/eng/docs/scripting ) et c'était lentissime, ça finissait même par planter...

      Sinon rsync fonctionne sous Windows grâce à cygwin, il y a même un gars qui a packagé le tout, et dans mon cas ça fonctionnait bien mieux que winscp :

      http://www.itefix.no/phpws/index.php?module=pagemaster&P(...)
      • [^] # Re: SFTP

        Posté par . Évalué à 1.

        Il n'y a pas de ssh coté windows...donc d'après tous les commentaires glanés ca et là, il faudrai que je mette un serveur ssh en place coté windows et ce pour le retour du fichier...je me trompe?

        Il y a environ 700 serveurs linux sur lesquels récupérer ce meme fichier log....
        Le serveur windows qui sert de rapatriement du fichier log est un windows NT 4.0 :S

        J'utilise psftp pour déposer les scripts sur les serveurs linux (un .bat qui lance un .sh).
        Pour la récupération du fichier log c'est plus chaud avec psftp car:
        -le "get" s'effectue alors que le fichier de log n'est pas encore créé (un "wait" existe t'il?)
        -il est impossible (d'après mes tests) de récupérer un fichier par "get" dont le style est: `hostname`_fichierlog.log, le fichier récupéré sera `hostname`_fichierlog.log et non srv1551_fichierlog.log (par exemple).

        Je me suis penché sur pscp...pour le moment rien de bien probant...


        Si vous avez besoin de plus d'éléments, n'hésitez pas à me le demander.

        "You need to stop using the crap shipped with Ubuntu."

        • [^] # Re: SFTP

          Posté par . Évalué à 1.

          Correction....pas 700 mais environ 920 serveurs linux...

          "You need to stop using the crap shipped with Ubuntu."

        • [^] # Re: SFTP

          Posté par . Évalué à 1.

          Correction....pas 700 mais environ 920 serveurs linux...

          "You need to stop using the crap shipped with Ubuntu."

          • [^] # Re: SFTP

            Posté par . Évalué à 2.

            Pour un tel nombre de serveur, ne serait il pas plus simple de dedier un machine linux a ce travail de recuperation et de traitement des logs ?
            Et ensuite de recuperer le resultat seul sur la machine Windows.

            Cela permetrait d'utiliser les outils unix present en standard sur linux (sftp, scp, syslog, rsync, ...) sans se casser la tete.
            • [^] # Re: SFTP

              Posté par . Évalué à 1.

              "ne serait il pas plus simple de dedier un machine linux a ce travail de recuperation et de traitement des logs ?"
              A qui le dis tu....l'ayant suggéré à maintes reprises à mes chefs...réponses négatives....ah!! si la vie était si simple!!....création sur chaque serveur du fichier de log....envoi de ceux ci sur une machine linux....compression en tar.gz du répertoire de récupération des fichiers log....envoi du répertoire compressé sur la machine windows avec le "get" de psftp....j'en rêve ttes les nuits.....mais voilà, pour eux se serai trop compliqué et trop long de monter un nouveau tux....au lieu de cela, je me fais chier à trouver une autre solution....pffff....meme pas envie de vous dire pour qui je bosse...vous en rigoleriez.... :S

              "You need to stop using the crap shipped with Ubuntu."

        • [^] # Re: SFTP

          Posté par . Évalué à 2.

          Donc tu ne cherches pas _seulement_ à récupérer un fichier de log.
          D'après ce que tu écris, tu dois aussi exécuter un script sur la machine distante avant de récupérer le fichier... le problème n'est donc plus tout à fait le même... il serait peut être alors utile que tu explicites un peu plus ce que tu veux vraiment faire et peut être que tu indiques ce que tu as déjà fait pour essayer de résoudre ton problème...
          • [^] # Re: SFTP

            Posté par . Évalué à 1.

            Si si, au niveau au quel je suis arrivé, je cherche seulement à récupérer le fichier de log.
            L'histoire comme sur le serveur windows: dans un répertoire, j'ai plusieurs fichiers différents:
            -le liste.txt: qui contient la liste de serveurs sur lesquels bosser
            -le .bat: qui va se connecter au serveur linux du fichier liste.txt et dépose les autres scripts (.txt et .sh) via psftp
            -le .txt: qui va contenir les commandes psftp à effectuer sur le serveur linux, cad dépot du .sh dans cron.hourly --> "put .sh " & "chmod 755 .sh"
            -le .sh: qui va récupérer et installer les packages sur le serveur et va générer un fichier log (`hostname`_fichierlog.log) pour savoir si 2 services sont bien lancés, qui voudra dire que les packages sont bien installés.

            Voilà ou j'en suis.
            Maintenant il faut pouvoir faire le chemin inverse, uniquement pour le fichier de log....et là, c'est pas gagné....
            Par psftp, impossible de le rebalancer avec un "get":
            get `hostname`_fichierlog.log --> il me balance `hostname`_fichierlog.log
            get %computername%_fichierlo.log --> (sait on jms, psftp est un mélange de commandes msdos et linux....) connait pas la commande
            get *.log --> connait pas la commande
            Pour ttes ces commandes je les ai aussi essayé avec des guillements, des quotes... :((
            .
            Il faut que j'obtienne auprès de mes chefs une installation du serveur ssh coté windows. Bon, j'ai pu obtenir un windows serveur 2003. Bah non, c'est sur, un tux ca coute trop cher....et puis pourquoi ne pas faire dans la facilité ce que l'on peut faire dans la difficulté?.....c'est tellement évident/logique d'en chier...oups....dsl, je m'égare...
            Avec le serveur ssh, peut-etre que là je pourrai utiliser sftp....ou autre chose.....

            Dites moi si je suis sur le bon chemin....sur le bon coté de la route...lol....sinon je vais me faire écraser par mes chefs....mdr
            Si tu nous écoutes Laurence B.....ahahah


            ***Troll implicite Inside***
            Mes chefs me désespèrent et sont désespérents....c'est pour ca qu'ils sont chefs.... :)))
            On parle d'un déploiement sur du full linux et ils arrivent encore à foutre du windows là dedans...c'est dingue ca....c'est comme s'ils se rassuraient en mettant un serveur windows quelque part....du genre "ouff c'est le srv windows qui va tout gérer, on peut etre tranquille".....et ta co***erie, c'est qui qui va la gérer?? mdr
            ***End of Troll implicite Inside***

            "You need to stop using the crap shipped with Ubuntu."

            • [^] # Re: SFTP

              Posté par . Évalué à 2.

              get *.log --> connait pas la commande

              Pour ça il y a :
              mget /le_chemin/*.log

              Par exemple.
              Et pour le
              get `hostname`_fichierlog.log --> il me balance `hostname`_fichierlog.log
              get %computername%_fichierlo.log --> (sait on jms, psftp est un mélange de commandes msdos et linux....) connait pas la commande

              N'as tu pas dans le liste.txt le nom du serveur ? Dans ce cas à partir du .bat du serveur tu génères le bachfile utilisé par psftp avec un truc du genre
              echo get /le_chemin/%variable_contenant_le_nom_du_serveur_%_fichier_log.log > psftp_bathfile
              psftp -b psftp_bathfile
              etc...

              Et pour ce qui est de récupérer les log à la suite de l'exécution vu que le script est dans le cron.hourly pour ne pas attendre l'heure +xx min avant de lancer la récup ?
              Sinon tu peux utiliser le FTP de windows pour que ce soit le serveur linux qui balance le log dessus avec l'outil wput (wput - A tiny wget-like ftp-client for uploading files) sauf si les échanges doivent être sécurisés...
              • [^] # Re: SFTP

                Posté par . Évalué à 1.

                Pour conclure ce post, j'ai trouvé une solution avec psftp et mget...
                4 fichiers dans le répertoire:
                -liste.txt
                -psftp.exe
                -lancement.bat
                -command.bat


                lancement.bat:

                [code]for /F "tokens=1,2,3 delims=;" %%i in (liste.txt) do set nommag=%%j&call :BOUCLE %%i %%k
                set /A compteur=0
                set /A nbpbrezo=0
                set nommag=
                goto :EOF

                :BOUCLE
                echo get /tmp/test.txt
                psftp.exe %2 -l -pw *********** -b command.bat >> tmp.txt
                del tmp.txt

                rem ----------------------

                set /A compteur=compteur+1
                goto :EOF[/code]



                command.bat:

                [code]mget -r /tmp/*.log[/code]


                Ya que comme cela que ca marche et pas une autre syntaxe (d'après mes moultes tests).

                ;)

                "You need to stop using the crap shipped with Ubuntu."

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.