2

У меня есть папка с десятками тысяч файлов, которые мне нужно найти в другой коробке. Поскольку создание одного файла за один раз занимает много времени, и, поскольку у меня нет места на жестком диске для создания сжатого tar-архива всех плиток, я бы хотел сделать следующее:

Смогите весь архив на лету и передайте его прямо через scp в другую коробку и немедленно распакуйте его там. Таким образом, я могу получить полную пропускную способность (не нужно запускать каждый файл), и мне не хватит места, дублируя весь архив.

Мой A box - это OSX, B - Ubuntu.

Есть ли для этого одна строчка?

2 ответа2

5

Я бы порекомендовал использовать rsync ; в случае, если ваше соединение прерывается, rsync может продолжить с того места, где оно осталось (с небольшими накладными расходами). Rsync может работать над SSH напрямую, поэтому он по-прежнему будет безопасным.

rsync -av -e ssh /path/to/send rsync://user@ubuntu.box/path/to/receive

3

scp работает только с файлами, которые уже есть на диске. Поскольку вы не хотите создавать файл (tar) перед его отправкой, вы должны использовать ssh и tar напрямую:

tar -c -f - ./path/to/compress | ssh eee.lan tar -C /where/to/extract -x -f-

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