Использование команд Linux для файлов на нескольких серверах - PullRequest
0 голосов
/ 02 марта 2012

Я новичок в Linux в целом, и до сих пор я не нашел решения, которое в лучшем случае не является неуклюжим. У меня есть опыт работы с Windows, и я привык запускать команды на одном сервере, которые обращаются к текстовым файлам в нескольких системах в одном домене.

Пример того, что обрабатывается в Windows:

find "Some text" \\ServerName01\c$\inetpub\*.log
find "Some text" \\ServerName02\c$\inetpub\*.log
find "Some text" \\ServerName03\c$\inetpub\*.log

Пример того, что я хотел бы сделать в Linux:

sed 's/SomeText/OtherText/p //ServerName01/var/opt/somefolder/*.log
sed 's/SomeText/OtherText/p //ServerName02/var/opt/somefolder/*.log
sed 's/SomeText/OtherText/p //ServerName03/var/opt/somefolder/*.log

Каков наилучший способ сделать вышеупомянутое в Linux, или это вообще возможно?

Спасибо!

Ответы [ 3 ]

2 голосов
/ 02 марта 2012

pssh или cssh будет работать

pssh предоставляет ряд команд для выполнения в группе компьютеры, использующие SSH. Это наиболее полезно для работы на кластерах хосты с однородной конфигурацией.

http://www.ubuntugeek.com/execute-commands-simultaneously-on-multiple-servers-using-psshcluster-sshmultixterm.html

2 голосов
/ 02 марта 2012

См. Pssh и pscp suite, вы можете запускать команды на нескольких удаленных серверах: http://www.theether.org/pssh/

1 голос
/ 02 марта 2012

есть много способов сделать это:

  • С помощью NFS / Fuse Mount смонтируйте каталог logs в одной системе, и вы можете сделать то же самое, что и в windows (которые автоматически монтируют удаленную файловую системус "\\")
  • используйте ssh (это было бы моим предпочтительным решением)

cat serverlist |xargs -i ssh {} "grep \" некоторый текст \ "yourfilepaths"

, который помогает, если вы используете пары ключей ssh ​​

...