Skrypt ma wyświetlać wszystkie procesy OS (poza tymi uruchomionymi na użytkowniku root), które są uruchomione dłużej niż 1h.
Skrypt powinien wyświetlić na ekran taki komunikat np.:
Proces - "użytkownik, na którym proces został uruchomiony" "pid procesu" "komenda procesu" - wykonuje sie 1h:7m:39s
Jeśli znajdzie więcej niż jeden, komunikaty mają się wyświetlić, jeden pod drugim:
Proces - "użytkownik, na którym proces 1 został uruchomiony" "pid procesu 1" "komenda procesu 1" - wykonuje sie 1h:7m:39s
A to co mam do tej pory.
Skrypt ma wyświetlać wszystkie procesy OS (poza tymi uruchomionymi na użytkowniku root), które są uruchomione dłużej niż 1h.
#!/bin/bash
ps ax -o uname,pid,etimes,command |
while read LINE
do
eval $(echo $LINE |
awk '{unme=$1; pid=$2; printf "echo -n \"%s \"; pwdx %s\n", etime, command}' )
done
~
tu druga wersja bardziej chodząca, nie spełniająca wszystkich wymagań
#!/bin/bash
#echo Proces "$USR" "$PID" "$KOM" wykonuje się: $CZAS
IFS=$'\n'
for i in `ps ax -o uname,pid,etimes,command | cat | awk '($1 !="root" && $3 <="3600") {print "Proces " $1 " " " " $2 " " " " $4 " " $5 " " $6 " " $7 " Wykonuje się:" " " $3 }'`;
do
echo $i
done
Wersja po wyżej nie jest elasyczna i przy dłuższych komendach obcina oraz nie konwertuje czasu z sekund na godziny (forma zjadliwy dla użytkoników)
Proszę o pomoc