Ich möchte alle 10 Minuten eine Liste aller laufenden Apps in Windows, die CPU-Auslastung und die Speicherauslastung protokollieren.
Ich habe viele node.exe-Aufgaben, daher möchte ich die Argumente der Aufgabe sehen (zum Beispiel: node c:\myscript.js
)
Ich habe versucht: tasklist/?
aber nichts im Zusammenhang mit der CPU-Auslastung gefunden.
Ich habe versucht: procexp/?
aber keine Möglichkeit gefunden, die Liste in eine Datei zu exportieren (oder in einer Konsole anzuzeigen)
Ich habe versucht: cprocess
(NirSoft), es kann in eine Datei ausgeben und die CPU anzeigen, aber es gibt nicht die Argumente der exe aus, die ausgeführt wurde.
Irgendwelche Ideen?
Persönlich würde ich Python und die schöne psutil- Bibliothek verwenden, die fast alle Informationen sammeln kann, von denen Sie träumen können:
Für einen Prozess unter Windows erhalten Sie:
Etwas Python 3.5+ Code, um mehr oder weniger das zu tun, was Sie für die Konsole verlangen (dasselbe kann mit früheren Pythons gemacht werden, aber nicht mit der f-Zeichenfolge) :
import psutil
import time
import datetime
while True:
print(datetime.datetime.now())
for proc in psutil.process_iter():
try:
pr = proc.as_dict()
print(f'{pr["name"]}\t{pr["memory_percent"]}\t{pr["cpu_percent"]}\t{pr["num_threads"]}\t{" ".join(pr["cmdline"][1:]) if pr["cmdline"] else ""}')
except (OSError, psutil.AccessDenied):
print(pr.name(), 'ACCESS DENIED')
print('\n*** Ctrl-C to Exit ***\n\n')
time.sleep(600) # Sleep for 10 Mins
Auf meinem Rechner sieht die Ausgabe so aus:
Sie könnten die Ausgabe einfach in eine Datei umleiten oder den Code so ändern, dass er direkt in eine CSV-Datei ausgegeben wird.
Sie könnten dies einfach mit einer Batch-Datei tun, hier ist etwas, das ich schnell aufgeschrieben habe:
@echo off
ECHO ***Date and Time***
set datetimef=%date:~-4%_%date:~3,2%_%date:~0,2%__%time:~0,2%_%time:~3,2%_%time:~6,2%
echo %datetimef%
ECHO ***List Processes***
WMIC path win32_process get Caption,Processid,Commandline
ECHO ***CPU-Usage***
wmic cpu get loadpercentage
ECHO ***Memory Usage***
systeminfo | findstr Memory
Es ist ziemlich einfach, Sie können es an Ihre Bedürfnisse anpassen, aber dies erfüllt Ihre Anforderungen. Ich sehe auch, dass Sie möchten, dass diese Daten in eine Datei exportiert werden, damit Sie den Inhalt der Batch-Datei wie folgt ausgeben können:batch.bat > Logs-%date:~10,4%%date:~7,2%%date:~4,2%_%time:~0,2%%time:~3,2%.log
Luftangriff