как использовать шаблон каталога поиска сценария оболочки удаленно - PullRequest
0 голосов
/ 11 июля 2009

Мне нужно использовать scp для обновления некоторого каталога на другом сервере. Это похоже на

for i in /usr/some/???/unknown/dir
do
cp /usr/some/file $i
done

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

спасибо

Ответы [ 4 ]

4 голосов
/ 11 июля 2009

Все забывают обрабатывать пробелы в именах файлов: P

Чтобы повторно использовать пример LB:

OLD_IFS=$IFS
IFS=$\'n'
for i in `ssh user@otherhost find /usr/some -type d -name dir`
do
  scp user@otherhost:"/usr/some/dir/$i" .
done
IFS=$OLD_IFS

Это зациклит каждую строку вывода вместо каждого слова (и $ i в кавычках).

2 голосов
/ 11 июля 2009
for i in `ssh user@otherhost ls /usr/some/dir/` 
do
 scp user@otherhost:/usr/some/dir/$i .
done
1 голос
/ 11 июля 2009
for i in `ssh user@otherhost find /usr/some -type d -name dir`
do
  scp user@otherhost:/usr/some/dir/$i .
done

я думаю, что это то, что вы ищете ...

0 голосов
/ 11 июля 2009

Если у вас есть доступ к оболочке на удаленном сервере, создайте список каталогов удаленно (используя find или ls или все, что вы использовали бы в вашем скрипте оболочки) и скопируйте его обратно в систему, которую вы копируетеот.Тогда вы можете использовать

for d in file_of_remote_dirs; do
    scp /usr/some/file remote_machine:d;
done
...