gpt4 book ai didi

linux - 如何在脚本中停止 tail 命令

转载 作者:IT王子 更新时间:2023-10-28 23:52:18 27 4
gpt4 key购买 nike

我想做的 - 开始使用自定义 ssh 客户端代码*** 将更改捕获到日志文件中。一段时间后(这不是固定值并且是基于事件的),发出停止拖尾的命令。这是我用来捕获日志文件的最新更改的命令 - tail -f logfile.txt

我希望能够以 :q 之类的东西结束它,我可以从脚本中发出它。我不想使用 ctrl + c 这样的键盘命令。

*** 我的自定义 ssh 客户端代码的伪代码(用 oop 语言编写)

include ssh-api
ssh = getSSHConnection();
cmd = 'cd to folder';
ssh.command(cmd);
cmd = 'tail -f log.txt';
ssh.command(cmd);
wait for special event to occur...
cmd = 'stop the tail now!'
out = ssh.command(cmd);
print "the changes made to log file were\n" + out;

我对日志文件所在的服务器没有写入权限。

我试过的 - http://www.linuxquestions.org/questions/red-hat-31/how-to-stop-tail-f-in-scipt-529419/

我无法理解那里的解决方案(在第 2 篇文章中)。有人可以解释解决方案或建议不同的方法吗?

谢谢。

最佳答案

在您的脚本中,您可以使用 $! 变量。

# run tail -f in background
tail -f /var/log/sample.log > out 2>&1 &

# process id of tail command
tailpid=$!

# wait for sometime
sleep 10

# now kill the tail process
kill $tailpid

$! 扩展为最近执行的后台(异步)命令的进程 ID。

关于linux - 如何在脚本中停止 tail 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28600353/

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