------------------------------------------------------------

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
schorschruffneck
Beiträge: 174
Registriert: 29.04.2012 22:55:06

------------------------------------------------------------

Beitrag von schorschruffneck » 27.05.2014 19:10:22

------------------------------------------------------------------------------------------------------------------------------------------------------------
Zuletzt geändert von schorschruffneck am 06.06.2014 09:52:07, insgesamt 3-mal geändert.

schorschruffneck
Beiträge: 174
Registriert: 29.04.2012 22:55:06

------------------------------------------------------------

Beitrag von schorschruffneck » 27.05.2014 20:11:33

-----------------------------------------------------------------------------------------------------------------------------------------------------------------
Zuletzt geändert von schorschruffneck am 06.06.2014 09:44:08, insgesamt 1-mal geändert.

schorschruffneck
Beiträge: 174
Registriert: 29.04.2012 22:55:06

------------------------------------------------------------

Beitrag von schorschruffneck » 28.05.2014 01:16:51

----------------------------------------------------------------------------------------------------------------------------------------------------------
Zuletzt geändert von schorschruffneck am 06.06.2014 09:44:42, insgesamt 1-mal geändert.

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: awk uptime Stunden und Minuten

Beitrag von rendegast » 28.05.2014 09:14:10

Code: Alles auswählen

$ uptime
 08:29:42 up 3 days, 10 min,  3 users,  load average: 0,05, 0,07, 0,12

$ string=`uptime` ; echo $string ___ ${string:13:5}
08:37:45 up 3 days, 18 min, 3 users, load average: 0,06, 0,09, 0,12 ___ 3 day
Die Ausgabe des Kommandos 'uptime' ist für solche Berechnungen nicht praktikabel.

Besser

Code: Alles auswählen

$ cat /proc/uptime
260366.78 495180.67
Die erste Zahl ist 'uptime' in Sekunden.

... der uptime-Wert des Nutzers ...
string4=`uptime`
Es besteht hier vielleicht ein Verständnisproblem.
'uptime' gibt die Uptime des Systems wieder, egal von welchem Benutzer ausgeführt,
und nicht die Uptime des jeweils ausführenden Benutzers.


Ich würde eher in die Richtung gehen, cron so alle 5 Minuten

Code: Alles auswählen

for i in $(who | awk '$2~/pts|tty/ && $1!="root" {print $1}') | sort -u); do date >> /var/log/uptime-$i ; done
for i in /var/log/uptime-*; do chmod 640 $i; chown 0:${i#/var/log/uptime-} $i ; done
und dann die Zeilen zählen. Das zweite setzt Rechte einigermaßen passend.
Ein Job @reboot könnte einen Reboot-Marker eintragen, ähnlich /var/log/wtmp / 'last'.



Genauer wäre es vielleicht wtmp / 'last -F' zu verarbeiten.
Da sind eigentlich alle nötigen Angaben.
(Desktop-Sessions sind bei meinem einfachen windowmanger 'pts/0', 'pts/N' sind xterms und 'ttyN' "echte" Konsolensitzungen)
Beim einfachen Addieren wären Überschneidungen zu berücksichtigen.
Evtl. gibt es ja auch schon eine spezielle Software genau dafür?

Code: Alles auswählen

$ last -F | egrep "pts/0|reboot"
user pts/0        :0               Sun May 27 09:12:14 2014   still logged in      
...
Das Zeitformat wird von 'date' akzeptiert, zBsp. für weitere Rechnungen:

Code: Alles auswählen

$ date -d "Sun May 27 09:12:14 2014"
Di 27. Mai 09:12:14 CEST 2014
$ date -d "Sun May 27 09:12:14 2014" +%s
1401174734
Problematisch sind weitere (aus display-Manager) gestartete Sitzungen (weiterer X-Server),
da sie scheinbar beliebige pts/N haben können.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

schorschruffneck
Beiträge: 174
Registriert: 29.04.2012 22:55:06

------------------------------------------------------------

Beitrag von schorschruffneck » 28.05.2014 17:33:05

--------------------------------------------------------------------------------------------------------------------------------------------------------
Zuletzt geändert von schorschruffneck am 06.06.2014 09:45:16, insgesamt 1-mal geändert.

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: awk uptime Stunden und Minuten

Beitrag von rendegast » 28.05.2014 22:55:25

for i in $(who | awk '$2~/pts|tty/ && $1!="root" {print $1}') | sort -u); do date >> /var/log/uptime-$i ; done
besser

Code: Alles auswählen

for i in $(who | awk '$2~/pts|tty/ && $1!="root" {print $1}' | sort -u); do date >> /var/log/uptime-$i ; done
Ich hatte händisch was ausgebessert, dabei wohl der faux-pas.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

schorschruffneck
Beiträge: 174
Registriert: 29.04.2012 22:55:06

------------------------------------------------------------

Beitrag von schorschruffneck » 29.05.2014 00:21:24

----------------------------------------------------------------------------------------------------------------------------------------------------------
Zuletzt geändert von schorschruffneck am 06.06.2014 09:45:47, insgesamt 1-mal geändert.

schorschruffneck
Beiträge: 174
Registriert: 29.04.2012 22:55:06

------------------------------------------------------------

Beitrag von schorschruffneck » 29.05.2014 21:49:00

-------------------------------------------------------------------------------------------------------------------------------------------------
Zuletzt geändert von schorschruffneck am 06.06.2014 09:46:14, insgesamt 1-mal geändert.

schorschruffneck
Beiträge: 174
Registriert: 29.04.2012 22:55:06

------------------------------------------------------------

Beitrag von schorschruffneck » 31.05.2014 01:44:23

------------------------------------------------------------------------------------------------------------------
Zuletzt geändert von schorschruffneck am 06.06.2014 09:46:54, insgesamt 1-mal geändert.

Antworten