Chciałbym wiedzieć, w jaki sposób mogę uzyskać liczbę procesów dla każdego użytkownika, który jest aktualnie zalogowany wliczbę procesów użytkownik jest uruchomiony przy użyciu bash
Odpowiedz
spróbuj tego:
ps -u "$(echo $(w -h | cut -d ' ' -f1 | sort -u))" o user= | sort | uniq -c | sort -rn
W celu prawidłowej obsługi nazw użytkownika, które mogą być dłuższe niż osiem znaków, zamiast korzystania users
w
. Ten drugi obcina nazwy użytkowników.
ps -u "$(echo $(printf '%s\n' $(users) | sort -u))" o user= | sort | uniq -c | sort -rn
można spróbować jakąś odmianę tego.
ps haux Ou | cut '-d ' -f1 | uniq -c
Daje liczbę procesów dla każdego użytkownika (zalogowanego lub nie). Teraz można filtrować te wyniki za pomocą wyjścia polecenia W lub innego sposobu ustalania, kto jest zalogowany.
Nice! Można dodać 'grep 'pts \ | tty'' przed cięciem, wycina wszelkie procesy nie związane z terminalem. – zigdon
ps -u aboelnour | awk 'END {print NR}'
pokaże liczbę procesów, które użytkownik aboelnour uruchomienie go
'wc -l' działa równie dobrze jak polecenie awk. –
Poniższe linki zawierają użyteczne ps commands options łącznie twoje wymagania:
userlist=$(w|awk 'BEGIN{ORS=","}NR>2{print $1}'|sed 's/,$//')
ps -u "$userlist"
Użyłem tego w połączeniu z odpowiedzią Aboelnoura, ale daje mi to liczbę procesów bez odpowiedniego użytkownika tych procesów. Jaki jest pomysł, jak to naprawić? – Vidi
Jeśli chcesz tylko rachubę procesów można użyć procfs bezpośrednio tak: (wymaga Linux 2.2 lub wyższy)
można użyć WC:
number_of_processes=`echo /proc/[0-9]* | wc -w`
lub zrobić w czystej bash (bez zewnętrznych poleceń), takich jak ten
Jeśli chcesz tylko bieżące wykorzystanie pozbyć
procs=(/proc/[0-9]*/fd/.)
number_of_proccesses=${#procs[*]}
Oto moje rozwiązanie dla Linux:
$ find/proc -user $ USER -maxdepth 1 -name '[0-9] *' | wc -l
To rozwiązanie nie zawiedzie, gdy liczba procesów przekroczy limit wiersza poleceń.
Jeśli kiedykolwiek obawiasz się ograniczenia limitu procesu użytkownika wyświetlanego przez ulimit -a
, chcesz uzyskać WSZYSTKIE procesy (w tym LWP).W takim przypadku należy użyć:
ps h -Led -o user | sort | uniq -c | sort -n
Na jeden system w ten sposób:
ps haux Ou | cut '-d ' -f1 | uniq -c
plonów:
# ps haux Ou | cut '-d ' -f1 | uniq -c
30 user1
1 dbus
3 user2
1 ntp
1 nut
1 polkitd
2 postfix
124 root
2 serv-bu+
gdzie robią dawne plony prawdziwa count proces:
# ps h -Led -o user | sort | uniq -c | sort -n
1 ntp
1 nut
2 dbus
2 postfix
2 serv-builder
3 user2
6 polkitd
141 root
444 user1
- 1. Parallelizing PHP procesów ze skryptem Bash?
- 2. Jak zmienić liczbę równoległych procesów?
- 3. Python multiprocessing: jak ograniczyć liczbę oczekujących procesów?
- 4. Jak uruchomić nohup jako inny użytkownik bez uruchamiania dwóch procesów?
- 5. Debian: Sprawdzaj użycie procesora przy użyciu bash
- 6. Jak zweryfikować liczbę rekordów przy użyciu kapibara
- 7. przy użyciu skryptu bash w oczekiwaniu
- 8. Jak ustawić liczbę przy użyciu Groupby?
- 9. Uruchomiony skrypt bash jest zawieszony gdzieś. Czy mogę się dowiedzieć, na której linii się znajduje?
- 10. Liczba wystąpień znaku w ciągu znaków przy użyciu Bash
- 11. Wieloprocesorowość w Pythonie przy ograniczeniu liczby uruchomionych procesów
- 12. Użytkownik logowania przy użyciu dostawcy pamięci w Symfony
- 13. Sprawdzanie SSRS, czy użytkownik w grupie przy użyciu niestandardowego zestawu
- 14. Jak uzyskać bieżący zalogowany użytkownik przy użyciu Wordpress Rest Api?
- 15. uwsgi: Co definiuje liczbę pracowników/procesów, których potrzebuje aplikacja django?
- 16. Jak przetestować pojedynczy plik przy użyciu Jest?
- 17. wersja taśmy z nazwy pakietu przy użyciu Bash
- 18. Echo duży fragment tekstu do pliku przy użyciu Bash
- 19. Jak mogę policzyć wystąpienia ciągu w pliku przy użyciu bash?
- 20. Odpowiedź błędu od demona: Kontener CONTAINER_NAME nie jest uruchomiony
- 21. Jak ustawić maksymalną liczbę procesów lub wątków MySQL?
- 22. Jak wygenerować losową liczbę przy użyciu stanu funkcjonalnego?
- 23. Jak uzyskać liczbę wierszy przy użyciu SqlDataReader w C#
- 24. Jak zliczyć liczbę znaków w zmiennej Bash?
- 25. bash - Jak zadeklarować lokalną liczbę całkowitą?
- 26. Obliczanie n-liczbę Fibonacciego przy użyciu formuły pytona
- 27. domyślny użytkownik postgres przy instalacji
- 28. Jak usunąć określone znaki ze nazw plików przy użyciu BASH
- 29. Przechowywanie wyjście bash do zmiennej przy użyciu eval
- 30. Jak wziąć przyrostek ciągu w bash przy użyciu przesunięć ujemnych?
Właśnie tego potrzebowałem, dziękuję !!! – Vidi
Niestety 'w -h' obcina nazwy użytkowników do 8 znaków, wyświetla również tylko zalogowanych użytkowników, aby nie widzieć wszystkich użytkowników, wystarczy zalogować użytkowników. –
@OliverDungey: OP zażądał dla użytkowników, którzy są aktualnie zalogowani. Jeśli chcesz procesów dla wszystkich użytkowników, niezależnie od tego, czy są zalogowani, to nie potrzebujesz 'w' - możesz po prostu użyć' ps' (który może zrobić, aby wyświetlać długie nazwy użytkownika w całości). Komenda 'users' pokazuje zalogowanych użytkowników i wydaje się nie przecinać nazw. Moja odpowiedź mogłaby zostać dostosowana do jej użycia. Zaktualizuję moją odpowiedź. –