Linux bash transfert compressé en FTP

Bonjour,

Je souhaite automatiser l'envoi de fichiers de serveurs linux vers un serveur windows. Pour des raison de commodités, j'ai porté mon choix sur du FTP, le transfert fonctionne parfaitement mais comme je transmet des fichiers texte, je souhaiterais activer un mode de transfert compressé (je ne peux pas gzipper et expédier zipper car après je lance des bulk insert depuis sql qui n'est pas capable de faire du gunzip). J'ai vu que sftp intégre un mode compressé via -C mais impossible de trouver un exemple concret d'utilisation en script avec login et pass intégré, donc je recherche une solution pour activer la compression du transfert via ftp (rien dans la man)

Voici mon bout de code FTP actuel :


ftp -in > ${v_fichier_log_ftp} << ENDFTP
open ${v_goftp_ipftp}
user ${v_goftp_usr} ${v_goftp_mdp}
cd ${D_REPERTOIRE}
mput ${prefixe_fichier}_*.csv
close
quit
ENDFTP



Merci par avance

Stéphane

4 réponses

  1. Contributeur
    hello
    sftp utilise ssh, est-il installé sur Windows ?
    sftp -o compression=yes
    0
    1. Je peux envisager d'installer un serveur ssh sur le windows mais je n'ai pas vu comment utiliser correctement le sftp en script bash, notamment le pb des login/pass ... En fait un me manque un bon exemple de sftp pour faire un mput ...

      Merci pour votre aide.

      Stéphane
      0
      1. Contributeur
        soit utiliser l'authentification ssh, il n'y a alors pas besoin de login, soit utiliser expect

        cat > fichier << XXX
        cd ${D_REPERTOIRE}
        mput ${prefixe_fichier}_*.csv
        close
        quit
        XXX
        dans fichier tes commandes

        #!/usr/local/bin/expect
        spawn sftp -b fichier user@system
        expect "password:"
        send "xxxxxxx!\n";
        interact
        0