Архивы | Май2012

выводим id нужных процессов

ps -f -A | grep -v 'cover' | grep -v 'sleep' | grep '^daemon' | awk {'print $2 " " $3'} | grep ' 1'$ | awk {'print $1'}
по порядку:
полная инфа | не содержит 'cover' | не содержит 'sleep' | начинается с 'daemon' | из них - вторую и третью колонку | из них только то, что заканчивается на ' 1' | из них только первую колонку.

для чего это может быть нужно? Например, корректно закрыть их все:
kill -SIGQUIT `ps -f -A | grep -v 'cover' | grep -v 'sleep' | grep '^daemon' | awk {'print $2 " " $3'} | grep ' 1'$ | awk {'print $1'}`

Далее...

Подсчет количества процессов

Считаем количество процессов php ./saprfcdd.php, запущенных от пользователя daemons
ps aux | grep 'php ./saprfcdd.php' | grep ^daemons | sed -n '$='

Далее...

Как проверить, есть ли такой процесс

а вот так просто:

p=123456 #pid процесса, но можно и еще что-нибудь
tPid="$( ps -A | grep "^ $p" ) " # грепаем по параметру
# проверяем, существует ли процесс с таким pid: если есть, то в tPid будет строка больше 2 символов
if [ 2 -lt "${#tPid}" ]
then
echo "Exist!"
fi

Далее...

join работает быстрее, чем in

SELECT * FROM `search` WHERE `id` in(SELECT `search` FROM `search_history` WHERE `login`='login' AND `program`='tovars_lp') ORDER BY `date` DESC LIMIT 0 , 15; - до 1.5 секунд.

SELECT *
FROM `search`
RIGHT OUTER JOIN `search_history` ON `search`.id = `search_history`.search
WHERE `search_history`.`login` = 'login'
AND `search_history`.`program` = 'tovars_lp'
ORDER BY `search_history`.`date` DESC
LIMIT 0 , 15
- 0.0045 секунды.
а если заменить * на список нужных полей, то сокращаем время запроса до 0.0015 секунды.

Далее...

Память в линукс

Линукс все старается кешировать и вообще свободную память держать не любит.
Поэтому в top зачастую можно увидеть, что вся память использована и только чуть-чуть засвопано.
Это и хорошо, т.к. чем больше закешировано, тем быстрее оно и будет из оперативки вынуто в случае необходимости.
Однако, если сие обстоятельство смущает непомерно, заходим под рутом, и делаем:
sync && echo "3" >/proc/sys/vm/drop_caches

После чего благополучно видим обнуление кеша.
Оттакота)

Далее...