gab-pro@o2.pl
Gość
Miernik podziękowań 0%
0 (12-09-2022, 13:40)dedito napisał(a): To jest wycinek ze skryptu.
ps ax -o uname,pid,etimes,command | cat | awk .... lub ps -aouxww uname,pid,etimes,command | awk ....
OK, ale jak to zrobić żeby wyświetlało jedno pod drugim
Proces apache PID Commenda wykonywał się Czas?
Liczba postów: 4 147
Liczba wątków: 76
Dołączył: Dec 2018
Reputacja:
System: Inny
Środowisko graficzne: Xfce
Architektura CPU: 64bit
Inny System: Debian testing/sid
Miernik podziękowań 38%
0 Sory, nie rozumiem co masz na myśli.
gab-pro@o2.pl
Gość
Miernik podziękowań 0%
0 (12-09-2022, 14:28)dedito napisał(a): Sory, nie rozumiem co masz na myśli.
Taki ma być wynik wykonania skryptu
Proces - "użytkownik, na którym proces 1 został uruchomiony" "pid procesu 1" "komenda procesu 1" - wykonuje sie 1h:7m:39s
Liczba postów: 4 147
Liczba wątków: 76
Dołączył: Dec 2018
Reputacja:
System: Inny
Środowisko graficzne: Xfce
Architektura CPU: 64bit
Inny System: Debian testing/sid
Miernik podziękowań 38%
gab-pro@o2.pl
Gość
Miernik podziękowań 0%
0 (12-09-2022, 14:37)dedito napisał(a): A jaki jest? Wynik
Proces opph7481 578817 php-fpm: pool opt_ext_ph7481 Wykonuje się: 12570
Tylko tu jeszcze trzeba zmodyfikować tak , aby kolumna Command przy dłuższych poleceniach się nie obcinała no i czas w godzinach.
Chyba musi być użyta inna pętla while?
Liczba postów: 4 147
Liczba wątków: 76
Dołączył: Dec 2018
Reputacja:
System: Inny
Środowisko graficzne: Xfce
Architektura CPU: 64bit
Inny System: Debian testing/sid
Miernik podziękowań 38%
12-09-2022, 14:55
(Ten post był ostatnio modyfikowany: 12-09-2022, 14:57 przez dedito.)
0 Na obcinanie command już dawałem sposób, a na wyświetlanie czasu to też kwestia odpowiedniej opcji ps. Zalecam zajrzeć do man ps (podpowiedź: etime vs etimes).
Cytat: etime ELAPSED elapsed time since the process was started,
in the form [[DD-]hh:]mm s.
etimes ELAPSED elapsed time since the process was started,
in seconds.
gab-pro@o2.pl
Gość
Miernik podziękowań 0%
0 Kod: #!/bin/bash
ps ax -o uname,pid,etimes,command | grep -v root | while read -r username pid time com ;
do
# echo $username
# echo $pid
# echo $time
# echo $com
if [[ $time -eq "3600" ]];
then
echo Proces $usr $pid $com -wykonuje sie: $time
fi
done
Gdzieś mam błąd nie wyświetla wyników. ?
Liczba postów: 4 147
Liczba wątków: 76
Dołączył: Dec 2018
Reputacja:
System: Inny
Środowisko graficzne: Xfce
Architektura CPU: 64bit
Inny System: Debian testing/sid
Miernik podziękowań 38%
0 No bo nie przekazujesz żadnych zmiennych do while.
gab-pro@o2.pl
Gość
Miernik podziękowań 0%
0 Kod: #!/bin/bash
ps ax -o uname,pid,etimes,command | grep -v root | while read -r username pid time com ;
do
if [[ $time -gt "3600" ]];
then
echo Proces $username $pid $com -wykonuje sie: $time sekund to jest `date "+%j dni %H godzin %M minut %S sekund" -d @$time` | >&1
fi
done
if [ $1 !=" " ];
then
exit 2
else
exit 0
fi
Po wyżej chodzi o zaimplementowanie kodu błędu żeby jak znajdzie procesy wykonujące się po wyżej 1h to exit 2, a jak nie znajdzie to OK i exit 0. Jak to zaimplementować,żeby w przypadku znalezienia procesów wykonujących się powyżej godziny wyświetlił je plus exit cod 2. Bo jak go wprowadzam to wyświetla mi tylko jedno wykonanie. Chodzi o
Liczba postów: 4 147
Liczba wątków: 76
Dołączył: Dec 2018
Reputacja:
System: Inny
Środowisko graficzne: Xfce
Architektura CPU: 64bit
Inny System: Debian testing/sid
Miernik podziękowań 38%
0 Czy ten wątek jest aktualny?
|