Bash 机器数据未每15秒显示一次输出

Bash 机器数据未每15秒显示一次输出,bash,sh,iostat,Bash,Sh,Iostat,下面的脚本打算每隔15秒输出一次“vmstat”,但出于某种原因,它只在有活动或我杀死脚本时才这样做,在其他情况下,它只是坐在那里 #!/bin/bash #!/bin/sh ps -ef | grep -v grep | grep "vmstat 15" | awk '{ print $2 }' | xargs kill ps -ef | grep -v grep | grep "iostat 15" | awk '{ print $2 }' | xargs kill ps -ef |

下面的脚本打算每隔15秒输出一次“vmstat”,但出于某种原因,它只在有活动或我杀死脚本时才这样做,在其他情况下,它只是坐在那里

#!/bin/bash
#!/bin/sh


ps -ef | grep -v grep | grep "vmstat 15" | awk '{ print $2 }' | xargs kill

ps -ef | grep -v grep | grep "iostat 15" | awk '{ print $2 }' | xargs kill

ps -ef | grep -v grep | grep "mpstat 15" | awk '{ print $2 }' | xargs kill

today=`date +%Y-%m-%d.%H:%M:%S`

find /var/log/ -name data_collection -type d -exec mv /var/log/data_collection /home/Beer/"data_collection_${today}" \;

mkdir -p /var/log/data_collection

vmstat 15 | /home/Beer/./addtimestamp.pl > /var/log/data_collection/vm_stat &
iostat 15 | /home/Beer/./addtimestamp.pl > /var/log/data_collection/ios_stat &
mpstat 15 | /home/Beer/./addtimestamp.pl > /var/log/data_collection/mp_stat &
我猜结尾的“&”符号与此有关,我这样做只是为了能够一次执行每个命令。

由于功能请求被拒绝,我将上述解决方案复制到这里


addtimestamp.pl中有什么?它可能是在缓冲输入,而不是每次读取内容时都刷新迭戈·巴斯奇


@DiegoBasch完全正确,我刚刚添加了一个“$|=1;”现在,将它添加到Perl脚本中,并开始工作,基本上将它设置为行缓冲区。我来补充答案我是L

addtimestamp.pl中有什么?可能是它在缓冲输入,而不是每次读取内容时都刷新。@DiegoBasch完全正确,我只是添加了一个“$|=1;”现在,将它添加到Perl脚本中,并开始工作,基本上将它设置为行缓冲区。我来补充答案。