[Bash]Не нужные процессы

Модератор: Модераторы разделов

rydj
Сообщения: 27

[Bash]Не нужные процессы

Сообщение rydj »

Подскажите пожалуйста а как можно найти процессы которым больше 3-ех дней?
Спасибо сказали:
rydj
Сообщения: 27

Re: [Bash]Не нужные процессы

Сообщение rydj »

разобрался =)

Код: Выделить всё

 ps -eo pid,etime,user,args |awk '{if ($2 ~/-/) {print}}'

Но никак не могу понять как мне авком взять 1-ую цифру так как она означает кол-во дней
Спасибо сказали:
Аватара пользователя
SLEDopit
Модератор
Сообщения: 4824
Статус: фанат консоли (=
ОС: GNU/Debian, RHEL

Re: [Bash]Не нужные процессы

Сообщение SLEDopit »

Если я правильно понял, то из $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.
Спасибо сказали:
rydj
Сообщения: 27

Re: [Bash]Не нужные процессы

Сообщение rydj »

Да, это прям то что нужно. Спасибо большое. Если кому-то нужно вот собственно сам скрипт:

Код: Выделить всё

#!/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]Не нужные процессы

Сообщение drBatty »

rydj писал(а):
23.10.2013 10:23
Но никак не могу понять как мне авком взять 1-ую цифру так как она означает кол-во дней

тащем-то не означает

у меня нет таких долгих процессов, вот набросал на скорую руку, как просили на 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
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали: