在多个服务器上的文件上使用Linux命令

时间:2012-03-02 02:52:36

标签: linux dns hostname

我是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 个答案:

答案 0 :(得分:2)

请参阅pssh和pscp套件,您可以在一堆远程服务器上运行命令:http://www.theether.org/pssh/

答案 1 :(得分:2)

pssh或cssh会起作用

  

pssh提供了许多针对一组执行的命令   电脑,使用SSH。它对于在集群上运行最有用   均匀配置的主机。

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

答案 2 :(得分:1)

有很多方法可以做到:

  • 通过NFS / Fuse Mount,将logs目录挂载到一个系统上,您可以执行与windows相同的操作(使用“\\”自动安装远程文件系统)
  • 使用ssh,(这将是我首选的解决方案)

cat serverlist | xargs -i ssh {}“grep”一些文本\“yourfilepaths”

如果您使用ssh密钥对

,会有所帮助