Compresser des fichiers de SCP à la volée

0

Je récupère des fichiers volumineux à l'aide de SCP (d'un système Linux à un système Windows), il existe maintenant un moyen de compresser ce fichier de destination à la volée, par exemple:

pscp -C [email protected]:/backups/backup1.bin Backups\backupdestination.bin

Donc "backupdestination.bin" serait compressé à la volée sur le lecteur de destination.

Par exemple, C: \ backups \ backupdestination.zip plutôt que C: \ backups \ backupdestination.bin

James Teare
la source

Réponses:

1

N'utilisez pas scp, utilisez ssh :)

La machine cible peut alors "attraper" les données. Pour votre exemple:

ssh [email protected] "cat /backups/backup1.bin"|gzip -9 -|Backups\backupdestination.bin

Tout ce schéma fonctionnera avec tout ce qui peut prendre un flux de données contigu stdinet ensuite le traiter. Je ne suis cependant pas au courant d'un outil qui crée les fichiers ZIP de cette façon. En particulier parce que les fichiers ZIP contiennent les méta-données telles que le nom de fichier et l'horodatage.

0xC0000022L
la source
Bonjour, Le seul problème est que la commande est exécutée à partir d'une machine Windows :(
James Teare
Quelle commande? L'intérieur catou le dehors ssh? Je pense que PuTTY devrait pouvoir s'en occuper. Et même si ce n'est pas le cas, vous pouvez toujours utiliser Cygwin ou MinGW pour atteindre cet objectif. En gros, gardez à l'esprit que sur la machine (source) (dans votre cas, SFTP n'est qu'un sous-système pour SSH. Ainsi, si vous fournissez un sous-système pratique sur cette machine pour compresser déjà avant que les données ne soient envoyées, cela pourrait également contourner les limitations.
0xC0000022L
@afrazier: pscpest de PuTTY, donc il l'utilise déjà.
0xC0000022L
Oui, il m'a fallu une relecture pour comprendre cela. 7-Zip peut gérer la redirection stdin / stdout si cela doit également être fait à partir du système Windows, et peut gérer gzip / bzip2 s'il ne veut pas utiliser lzma.
afrazier
1

Je suggère rsync, car il a un drapeau de compression intégré.

Depuis la page de manuel rsync ( http://linux.die.net/man/1/rsync ):

-z, --compress              compress file data during the transfer
 --compress-level=NUM    explicitly set compression level
MaddHacker
la source
1
OP veut compresser le fichier de destination, pas le transfert
golimar