Hallo
Wie kann man z.B. den Befehl ps aux > Datei.txt genau 5min lang ausführen,so daß man quasi ein log der Prozesse der letzten 5Minuten bekommt.
geht das mit bash-Bordmitteln,oder ist dazu eine "andere" Programmiersprache vonnöten ?
mfg
schwedenmann
Terminalbefehl genau 5min lang ausführen
-
- Beiträge: 5613
- Registriert: 30.12.2004 15:31:07
- Wohnort: Wegberg
Re: Terminalbefehl genau 5min lang ausführen
ps aux gibt keine kontinuierliche Ausgabe an stdout aus. Du kannst es allenfalls wiederholt aufrufen, wobei du natürlich das Zeitintervall angeben musst (und dir dazwischen kurz erscheinende Prozesse entgehen).
top hat einen Batch-Modus, der für die Aufgabe brauchbar sein könnte.
top hat einen Batch-Modus, der für die Aufgabe brauchbar sein könnte.
Zuletzt geändert von DeletedUserReAsG am 21.03.2021 20:08:10, insgesamt 1-mal geändert.
-
- Beiträge: 5613
- Registriert: 30.12.2004 15:31:07
- Wohnort: Wegberg
Re: Terminalbefehl genau 5min lang ausführen
Hallo
@niemand
Mirt geht es nur darum,wie man sowas grundsätzlich programmiert mit bash oder anderen sprachen.
ps aux war jetzt nur als Beispiel gedacht.
mfg
schwedenmann
@niemand
Mirt geht es nur darum,wie man sowas grundsätzlich programmiert mit bash oder anderen sprachen.
ps aux war jetzt nur als Beispiel gedacht.
mfg
schwedenmann
Re: Terminalbefehl genau 5min lang ausführen
Du kannst ein Script mit kontinuierlicher Ausgabe schreiben, du kannst auch eine kontinuierliche Ausgabe eines Programms in eine Datei leiten. Du kannst jedoch nicht von der Shell aus ein Programm dazu bringen, eine kontinuierliche Ausgabe zu schreiben, wenn das Programm selbst dieses nicht vorsieht. Du kannst aber das Programm in Intervallen aufrufen, und die entsprechende Ausgabe an das Ende der gegebenen Datei hängen.
Zuletzt geändert von DeletedUserReAsG am 21.03.2021 20:15:51, insgesamt 1-mal geändert.
Re: Terminalbefehl genau 5min lang ausführen
Fuer Befehle (wie ping), die kontinuierlich laufen:
Erklaerung: Startet ping im Hintergrund, schlaeft parallel dazu 300s und killt dann den letzten Hintergrundprozess.
Code: Alles auswählen
ping foo >log & sleep 300 && kill $!
Use ed once in a while!
Re: Terminalbefehl genau 5min lang ausführen
Dafür kann man auch gut timeout benutzen (aus den coreutils).Meillo hat geschrieben:21.03.2021 20:15:20Code: Alles auswählen
ping foo >log & sleep 300 && kill $!
Manchmal bekannt als Just (another) Terminal Hacker.