制作gdb日志文件

时间:2011-10-30 18:43:53

标签: logging gdb cpu

如果它使用100%的CPU,我需要在我的进程上创建一个gdb日志。

这是我用bash写的那一刻的剧本:

#!/bin/bash

ID=`top -n 1 | grep server | awk '{print $1}'`
CPU_PERCENT=`top -n 1 | grep server | awk '{print $9}'`
GDB_m = `gdb server $ID --cd /home/rox/rl`

echo "Checking CPU..."

if [ $CPU_PERCENT -eq 100 ]
then
echo "CPU 100%, running the script, for the process with ID: $ID"
while true
do
    gdb server $ID --cd /home/private_user/servers
    echo "bt full" >> $GDB_m
    echo "exit" >> $GDB_m
    echo "y" >> $GDB_m
    echo "Sleeping for 60 seconds..."
    sleep 60
done
else
echo "CPU $CPU_PERCENT %, its fine!"
sleep 1
fi

它是由我编写的,并没有保存日志或任何内容,$ID或其他东西出错,因为当我运行它时,它说:

  

/ home / private_user / servers / server / 21337:没有这样的文件或   。目录

1 个答案:

答案 0 :(得分:0)

top对齐字段,因此您可能会得到结果,其中awk($ 1)中的第一条记录是空字符串。我改变了

ID=`top -n 1 | grep server | awk '{print $1}'`
CPU_PERCENT=`top -n 1 | grep server | awk '{print $9}'`

ID=`top -n 1 | grep server | awk '{print (NF>13 ? $2 : $1)}'`
CPU_PERCENT=`top -n 1 | grep server | awk '{print (NF>13 ? $10 : $9)}'`

看看是否有帮助。