gpt4 book ai didi

linux - ssh-into多台服务器时如何创建一个日志文件

转载 作者:太空宇宙 更新时间:2023-11-04 12:13:03 26 4
gpt4 key购买 nike

我想创建一个 bash 脚本来自动将自己连接到一堆服务器,在那里执行一些命令并将这些命令的输出保存在我用来连接的服务器上的一个日志文件中我自己到所有其他服务器。

到目前为止,我能够在我自己连接的每台服务器上创建一个日志文件,或者在我用来访问所有其他服务器的服务器的控制台上显示每条命令的输出。

我的脚本目前看起来像这样(我知道 for 循环,但我不想在这种情况下使用它们,因为我需要在每个服务器上执行不同的命令):

#!/bin/bash
ssh server1 <<EOF
hostname
printf '\n'
mount
EOF

printf '\n'
printf '\n'
printf '\n'

ssh server2 <<EOF
hostname
printf '\n'
mount
EOF

...

我的想法是使用 &>> 运算符,因为我需要知道所有命令是否成功执行。最后,我希望只有一个日志文件,它应该看起来有点像这样:

server1

output of mount



server 2

output of mount

...

那么,我怎样才能设法只创建一个包含所有已执行命令结果的大型日志文件呢?另外,如果我使用 ssh -T 选项摆脱消息“由于标准输入不是终端,将不会分配伪终端”,这个脚本是否仍然可以正常工作?在我的脚本中使用 mount 挂载某些东西时,我是否必须转义/_ 等特殊字符?

提前致谢!

最佳答案

我建议使用像 logstash 这样的开源实用程序或 fluentd .

关于linux - ssh-into多台服务器时如何创建一个日志文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48253031/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com