【发布时间】:2017-07-06 08:55:11
【问题描述】:
我正在尝试编写一个脚本,该脚本在多个服务器中查找某些内容,并将所有服务器的输出附加到一个文件中。服务器受密码保护。我使用 expect 进入服务器并传递 grep 命令,但我希望将它们中的每一个的输出都放在一个文件中。
这是我想做的事情的概述:
spawn ssh xxx@server1
expect "password: "
send "PASSWORD\r"
expect "$ "
send "grep <something> /some/log/file >> file.txt"
expect "$ "
send "exit\r"
... 然后继续在几十个服务器上执行此操作,每次将 grep 命令的输出附加到 file.txt 。我不介意 file.txt 实际上在哪里。它可以在我的本地计算机或任何服务器上。
我想出的最好的方法是将这些中的每一个都放在正在执行 grep 的服务器上的文件中,然后将所有这些文件 scp 到本地并将它们全部附加。不过,这似乎非常浪费,所以我正在寻找一种将输出发送到服务器或从服务器发送到本地的方法。
【问题讨论】: