Создание файла журнала GDB - PullRequest
0 голосов
/ 30 октября 2011

Мне нужно сделать журнал GDB для моего процесса, если он использует 100% ЦП.

Вот мой сценарий, написанный на данный момент в 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 голосов
/ 31 октября 2011

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)}'`

и посмотрел, поможет ли это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...