[Bash]Не нужные процессы
Модератор: Модераторы разделов
-
rydj
- Сообщения: 27
[Bash]Не нужные процессы
Подскажите пожалуйста а как можно найти процессы которым больше 3-ех дней?
-
rydj
- Сообщения: 27
Re: [Bash]Не нужные процессы
разобрался =)
Но никак не могу понять как мне авком взять 1-ую цифру так как она означает кол-во дней
Код: Выделить всё
ps -eo pid,etime,user,args |awk '{if ($2 ~/-/) {print}}'Но никак не могу понять как мне авком взять 1-ую цифру так как она означает кол-во дней
-
SLEDopit
- Модератор
- Сообщения: 4824
- Статус: фанат консоли (=
- ОС: GNU/Debian, RHEL
Re: [Bash]Не нужные процессы
Если я правильно понял, то из $2 просто нужно убрать то, что после -. Это делается так:
Код: Выделить всё
ps -eo pid,etime,user,args |awk '{if($2 ~/-/){sub("-.*","",$2);print}}'UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don't do mistakes, the more bugs are in your code.
The more you believe you don't do mistakes, the more bugs are in your code.
Спасибо сказали:
-
rydj
- Сообщения: 27
Re: [Bash]Не нужные процессы
Да, это прям то что нужно. Спасибо большое. Если кому-то нужно вот собственно сам скрипт:
Код: Выделить всё
#!/bin/bash
R_FILE=/var/tmp/session/result.mess
ps -eo pid,etime,user,args |grep "{Что за процесс ищем}" |awk '{if($2 ~/-/){sub("-.*","",$2);print}}'|awk '{if ($2 = 1 ) {print}}' |grep "{что за процесс ищем}"
if [ $? -ne 1 ]; then
echo "Внимание обнаружены сессии работающие более одного дня " >$R_FILE
ps -eo pid,etime,user,args |grep "{что за процесс ищем}" |awk '{if($2 ~/-/){sub("-.*","",$2);print}}'|awk '{if ($2 = 1) {print}}'|while read STR_LINE
do
R_PID=$(echo $STR_LINE| awk '{print $1}')
USER=$(echo $STR_LINE| awk '{print $3}')
P_DAY=$(echo $STR_LINE| awk '{print $2}')
R_USER=$(grep $USER /etc/passwd |cut -f1 -d":")
echo "PID: $R_PID User: $R_USER Days: $P_DAY">>$R_FILE
done
cat $R_FILE |mailx -s 'Session report' email@host
fi-
drBatty
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
Re: [Bash]Не нужные процессы
тащем-то не означает
у меня нет таких долгих процессов, вот набросал на скорую руку, как просили на bash
Код: Выделить всё
#!/bin/bash
declare -a PA
declare -a DA
ps -eo pid,etime,user,args|\
while read S; do
PA=( $S )
D="${PA[1]}"
OLD_IFS="$IFS"
IFS=":"
DA=( $D )
IFS="$OLD_IFS"
echo "${PA[@]}"
echo "цифр ${#DA[@]}, цифры: '${DA[0]}' '${DA[1]}' '${DA[2]}'"
done