Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование в *nix (http://forum.oszone.net/forumdisplay.php?f=35)
-   -   Скрпт считающий файлы (lsof) (http://forum.oszone.net/showthread.php?t=184243)

Endy1 30-08-2010 18:04 1485020

Скрпт считающий файлы (lsof)
 
Ребята, помогите написать пару строк. Наверняка, тут ничего сложного нет. Но когда не умеешь - всё сложно. :)

Нужен скриптик, который проверял бы количество открытых Tomcatом файлов, и если это число превышает 1000 делал бы tomcat restart.
Я себе представляю что-то вроде этого:

Код:

#!/bin/bash

grep=/bin/grep
wc=/usr/bin/wc
list=/usr/bin/lsof

arv=$list | $grep "tomcat" | $wc -l

if [ $arv >=1000 ]; then
/etc/init.d/tomcat6 stop
sleep 5
/etc/init.d/tomcat6 start
echo "Делаю рестар томкат.  Количество открытых файлов:" $arv
fi

И вот умудрился запутаться в 2х строчках кода. Никак он не хочет сохранять в переменной вывод lsof.
Помогите, please!

Endy1 31-08-2010 17:14 1485782

Совсем никаких мыслей?

Kent 31-08-2010 22:52 1486037

Код:

$(list | $grep "tomcat" | $wc -l)
Перед 1000 нужен пробел. И, вроде, >= нет такого сравнения.

Endy1 01-09-2010 10:40 1486253

С пробелом, увы, то же самое.

>= в справочник нашёл, что это "больше или равно".

По-моему проблема в этой строке: $list | $grep "tomcat" | $wc -l

Я упростил скрипт, чтобы проверить будет ли выполняться условие

Код:

#!/bin/bash

wc=/usr/bin/wc
list=/usr/bin/lsof

file=$list -p 5792 | $wc -l
if [[ $file > 500 ]]; then
echo "OK"
fi

Почему-то условие выполняется в любом случае, не зависимо от реального значения $file.
И появилась ошибка
./tom: line 12: -p: command not found

Кажется, что ошибка в синтаксисе. А где - не могу понять...

Kent 01-09-2010 11:36 1486291

Обратите внимание на скобки, которые я добавил.

Цитата:

Цитата Endy1
>= в справочник нашёл, что это "больше или равно" »

man test

Endy1 01-09-2010 11:41 1486295

Ага, нашёл, что больше или равно -ge

Со скобками сейчас попробую.

Kent 03-09-2010 00:09 1487523

В тему:
http://ironman.darthgibus.net/?p=89


Время: 15:15.

Время: 15:15.
© OSzone.net 2001-