uptime | fieltern?

3 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

Neben den bereits gezeigten Möglichkeiten:

uptime|cut -d' ' -f2

Ferner könnte man direkt /proc/upotime auslesen und das gerade selbst umrechnen.

Beispielsweise:

IFS=' ' read -ra my_array <<< $(uptime)
echo ${my_array[2]} | sed 's/,//'

Ich bin mir sicher, das geht deutlich einfacher, aber so klappt es.

  • read -ra liest die Eingabe (in diesem Fall die Ausgabe von uptime) und IFS trennt es anhand des Leerzeichens, und schreibt es in die Variable my_array.
  • echo wirft dann den zweiten Eintrag aus
  • sed entfernt noch das Komma
ps2: Warum zählt der Root nicht als user?

Der zählt als user, aber der ist aktuell scheinbar nicht eingeloggt. Denn hier werden nur die eingeloggten Benutzer aufgezählt. Bei mir im System gibt es bspw. 38 "Benutzer":

cat /etc/passwd | wc -l
pas3: Kann man auch die user uptime kriegen (ikw:root)

Du meinst die Login-Zeit des Benutzers? Das geht über

last USER_NAME

Da werden alle Logins mit Einlog- und Auslog-Zeit aufgelistet sowie die Zeit, wie lange man eingeloggt ist/war.

ad 1) Kleiner Tipp:

man uptime

gibt erste Hilfe! Da findet man die Option "-p"

ad 2) Auch root zählt als user, sofern er angemeldet ist.

ad 3) Die "uptime" zeigt die Zeit seit Einschalten des Rechners und nicht die Anwesenheit der User.


ware37 
Beitragsersteller
 13.01.2024, 17:48

input:

uptime -p

output:

up 2 hours, 07 minutes  

Ich hatte gern "2:07" ausgeben, geht das?

bmke2012  13.01.2024, 17:51
@ware37

Na, dann probier es doch mal mit

uptime | awk '/up/ {print $3}'

Da hängt zwar noch ein Komma am Ende, aber da fällt Dir bestimmt mit Hilfe des Internets auch noch was ein, oder?