gpt4 book ai didi

linux - Shell 脚本不生成日志文件

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

我试图每分钟捕获 netstat 命令日志。我编写了一个循环运行的脚本。但是我的脚本一直执行到 捕获日志 语句到 test.sh 代码中。

测试.sh

#!/bin/sh
export TODAY=`date`
export i=0
while [ true ]
do
echo "capturing logs" $i
sh test1.sh > test$i.log
echo "sleeping for 1m"
sleep 60
i=$((i+1))
done

test1.sh

#!/bin/sh
netstat -l 5575 | while IFS= read -r line; do printf '[%s] %s\n' "$(date '+%Y-%m-%d %H:%M:%S')" "$line"; done

以上脚本的输出是:捕获日志

(如果我按 crtl-c 然后它进一步移动并显示“ sleep 1m”语句,当谈到“捕获日志语句”时我需要再次按 crtl-c)。

最佳答案

sh test1.sh > test$i.log

正在等待 test1.sh 完成,这可能需要很长时间才能完成。

尝试在另一个 tty 中执行 test1.sh

setsid sh -c 'exec [launch the script] <> /dev/tty[number_of_tty] >&0 2>&1'

让我知道。

注意不要在同一个 tty 上运行很多进程。您可以使用 [number_of_tty] 来避免这种情况。

能解决问题,不能解决问题,但值得一试。

关于linux - Shell 脚本不生成日志文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46442165/

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