1

Я хочу скачать папку с сервера, содержащую несколько тысяч файлов, используя ssh. Я использую Ubuntu и у меня нет прав на запись на сервере, поэтому я не могу создать .tar на сервере и впоследствии скопировать его. Но загрузка всех файлов по отдельности происходит очень медленно.

Так как же загрузить эту папку с таким количеством файлов в один архив с помощью командной строки?

3 ответа3

2

Вы могли бы сделать что-то вроде этого:

ssh username@hostname 'tar -cf - /dir/to/download' | gzip > remote_files.tgz

Это запустит tar на удаленном сервере, но вместо записи в файл будет выведен на стандартный stdout . Это будет возвращено через SSH на ваш локальный компьютер, распаковано и затем записано в файл.

2

Защищенная копия "scp" устанавливается вместе с OpenSSH. Так что это должно сработать ...

scp -r username@yourserver.com:/path/to/remote/files /path/to/local/files

-r Рекурсивно копировать целые каталоги.

man scp для полной информации.

1

Оба предыдущих ответа будут работать, но я удивлен, что никто не упомянул rsync , как в:

rsync -az username@yourserver.com:/path/to/remote/files/ /path/to/local/files/

Бонусными моментами является то, что если соединение прервано, вы можете перезагрузить его, и он выяснит, что осталось скопировать.

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