scp, найдите файлы по именам на удаленном компьютере и скопируйте на локальный

Мне нужно скопировать все файлы из удаленной папки (есть подпапки), отфильтрованные по имени, в локальную, но с той же структурой подпапок.

Я сделал

./sshpass -p 'XXX' scp -r tpx@192.168.1.6:/app/eretail/gaia/web/eti/*new.html .

Но эти файлы скопированы только в корневую папку. На удаленном, например, файле 01new.html в подпапке 01 и мне нужно скопировать и эти файлы, с той же структурой вложенных папок. Например, вот так.

Remote

/app/eretail/gaia/web/eti/02new.html
/app/eretail/gaia/web/eti/01/01new.html
/app/eretail/gaia/web/eti/01/test.html

Local (ожидаемый результат)

./02new.html
./01/01new.html

Как я могу это сделать? Нужно ли мне использовать find? Как?

Спасибо.

EDIT: rsync невозможно.

0
задан 2 October 2020 в 15:53

2 ответа

Спасибо @FedonKadifeli за ответ, он привел меня в правильном направлении. Кажется, его решение сработало, но, боюсь, не для старого дедушки AIX.

Я сделал это таким образом, может быть, для кого-то полезного.

./sshpass -p 'XXX' ssh tpx@192.168.1.6 "
    cd /app/eretail/gaia/web/eti/
    find . -name '*new.html' -exec tar -rvf etikety-html.tar {} \;
"

./sshpass -p 'XXX' scp -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no tpx@192.168.1.6:/app/eretail/gaia/web/eti/etikety-html.tar .

tar -xvf etikety-html.tar
0
ответ дан 4 January 2021 в 08:21

Я упомянул в своем комментарии выше о параметре - include для команда tar . Однако команда GNU tar не содержит параметр - include . Итак, правильный ответ будет таким:

./sshpass -p 'XXX' \
  ssh tpx@192.168.1.6 "cd /app/eretail/gaia/web/eti/ ; \
    find . -name '*new.html' -print0 | tar -cvf - --null -T -" \
  | tar -xvf -

Здесь мы используем ssh вместо sftp . ssh запустит команды cd , find и первый tar на удаленном сервере в "tar" файлы, найденные с помощью , находят на stdout . Последняя команда tar будет запущена на локальном компьютере, чтобы «разархивировать» файлы, поступающие из stdin в текущий каталог.

1
ответ дан 4 January 2021 в 08:21

Другие вопросы по тегам:

Похожие вопросы: