Я извлекаю большие файлы с помощью SCP (из системы linux в систему Windows), теперь есть какой-либо способ сжатия этого файла назначения на лету, например:

pscp -C root@123.123.123.123:/backups/backup1.bin Backups\backupdestination.bin

Таким образом, «backupdestination.bin» будет сжат на диске назначения на лету.

например, C:\backups\backupdestination.zip, а не C:\backups\backupdestination.bin

2 ответа2

1

Я бы предложил rsync , поскольку он имеет встроенный флаг сжатия.

Со страницы руководства rsync (http://linux.die.net/man/1/rsync):

-z, --compress              compress file data during the transfer
 --compress-level=NUM    explicitly set compression level
1

Не используйте scp, используйте ssh :)

Затем целевая машина может "поймать" данные. Для вашего примера:

ssh root@123.123.123.123 "cat /backups/backup1.bin"|gzip -9 -|Backups\backupdestination.bin

Вся эта схема будет работать со всем, что может взять непрерывный поток данных из стандартного stdin и затем обработать его. Однако я не знаю, что такое инструмент, который создает ZIP-файлы. В частности, потому что ZIP-файлы содержат метаданные, такие как имя файла и метка времени.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .