Terminalbefehl genau 5min lang ausführen

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
schwedenmann
Beiträge: 4954
Registriert: 30.12.2004 15:31:07
Wohnort: Wegberg

Terminalbefehl genau 5min lang ausführen

Beitrag von schwedenmann » 21.03.2021 19:58:37

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

Benutzeravatar
niemand
Beiträge: 14653
Registriert: 18.07.2004 16:43:29

Re: Terminalbefehl genau 5min lang ausführen

Beitrag von niemand » 21.03.2021 20:04:29

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.
Zuletzt geändert von niemand am 21.03.2021 20:08:10, insgesamt 1-mal geändert.
non serviam.

schwedenmann
Beiträge: 4954
Registriert: 30.12.2004 15:31:07
Wohnort: Wegberg

Re: Terminalbefehl genau 5min lang ausführen

Beitrag von schwedenmann » 21.03.2021 20:08:05

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

Benutzeravatar
niemand
Beiträge: 14653
Registriert: 18.07.2004 16:43:29

Re: Terminalbefehl genau 5min lang ausführen

Beitrag von niemand » 21.03.2021 20:10:38

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 niemand am 21.03.2021 20:15:51, insgesamt 1-mal geändert.
non serviam.

Benutzeravatar
Meillo
Moderator
Beiträge: 6566
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Terminalbefehl genau 5min lang ausführen

Beitrag von Meillo » 21.03.2021 20:15:20

Fuer Befehle (wie ping), die kontinuierlich laufen:

Code: Alles auswählen

ping foo >log & sleep 300 && kill $!
Erklaerung: Startet ping im Hintergrund, schlaeft parallel dazu 300s und killt dann den letzten Hintergrundprozess.
Use ed(1) once in a while!

JTH
Moderator
Beiträge: 1057
Registriert: 13.08.2008 17:01:41
Wohnort: Berlin

Re: Terminalbefehl genau 5min lang ausführen

Beitrag von JTH » 21.03.2021 21:11:38

Meillo hat geschrieben: ↑ zum Beitrag ↑
21.03.2021 20:15:20

Code: Alles auswählen

ping foo >log & sleep 300 && kill $!
Dafür kann man auch gut timeout benutzen (aus den Debiancoreutils).

Antworten