Remote S SH копирует файлы с именами файлов, которые содержат определенные строки - PullRequest
0 голосов
/ 04 февраля 2020

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

У меня есть ряд файлов, которые мне нужно скопировать в различные каталоги формата:

/opt/DR/output/1/a/csva1file.csv
/opt/DR/output/1/a/csva2file.csv
/opt/DR/output/1/b/csvb1file.csv
/opt/DR/output/1/b/csvb2file.csv
/opt/DR/output/1/b/csvb3file.csv
/opt/DR/output/1/b/csvb4file.csv
/opt/DR/output/1/c/csvc1file.csv
...
/opt/DR/output/30/a/csva1file.csv

И это продолжается для вывода / 1 в / 40 папок. Все папки внутри идентичны, и все имена файлов внутри будут содержать одинаковые строки, только с небольшими различиями в зависимости от папки, в которой они находятся.

Я хочу скопировать все файлы, которые содержат «a1» из любого каталога в папку на удаленном сервере:

root@10.10.0.13:/data/landing/a/a1/

Точно так же я хочу сделать это для всех b1, c1, c2 et c. файлы и скопируйте их в соответствующие места на удаленном сервере.

Кажется, я не могу найти способ сделать это, не включая написание нескольких строк кода.

Я пробовал

cd /opt/DR/output/1/a/
scp -r -v *a1* root@10.10.0.13:/data/landing/a/a1/

, который работает, но я хочу скопировать ** ВСЕ * файлы CSV a1, а не делать их один за другим.

I смотрел в шумиху, но не думаю, что это может быть использовано для моего случая. Я также рассмотрел использование paramiko / glob для python, но я также не смог заставить его работать. В идеале я хотел бы сделать это с помощью сценария оболочки bash, но сценарий python также будет работать.

Надеюсь, это имеет смысл. Любая помощь будет принята с благодарностью. Я могу копировать через SFTP или SCP.

...