gpt4 book ai didi

linux - 使用 bash 在本地服务器和远程 ssh 服务器中启动和停止 "tail -f"

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:24:13 25 4
gpt4 key购买 nike

我基本上是在尝试编写一个脚本来实时从本地(服务器 1)和远程服务器(服务器 2)捕获实时日志。日志文件存储在两台服务器上的同一目录中。

例如:/var/log/test/test.log

现在我想在 server1 中编写一个脚本并捕获两个节点中不断增加的日志。

shell 的基本逻辑(不是真正的 bash 代码):

tail -f /var/log/test/test.log > /some/local/dir/sever1.log &
ssh server2 and tail -f /var/log/test/test.log > /some/local/dir/server2.log &
if [ exit or ctrl+c ]
kill "tail -f pid" in server1
kill "tail -f pid" in server2.
exit

我是一个 bash 菜鸟,希望有人能帮助我实现目标。谢谢

最佳答案

只要你还没有nohup'd or disown'd您的脚本,终止父脚本也应该终止其子进程。

或者,您可以捕获 $! 的值,其中包含最近运行的后台进程的 PID。您可以将这些值与 kill 一起使用,让父脚本结束它们。为确保您的父脚本在退出时终止它们,您需要设置一个退出 trap .

关于linux - 使用 bash 在本地服务器和远程 ssh 服务器中启动和停止 "tail -f",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38001334/

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