Утилита командной строки для просмотра списка задач, использования ЦП и использования памяти.
Я хочу каждые 10 минут регистрировать список всех запущенных приложений в Windows, использование ЦП и использование памяти.
У меня много задач node.exe, поэтому я хочу видеть аргументы задачи (например: node c:\myscript.js
)
Я пробовал: tasklist/?
но не нашел ничего, связанного с использованием ЦП.
Я пробовал: procexp/?
но не нашел способа экспортировать список в файл (или показать в консоли)
Я пробовал: cprocess
(NirSoft), он может делать дамп в файл и показывать процессор, но не дает аргументов запущенного exe.
Любые идеи?
Лично я бы использовал Python и прекрасную библиотеку psutil , которая может собрать практически всю информацию, о которой вы только можете мечтать:
Для процесса в Windows вы можете получить:
Некоторый код Python 3.5+ , чтобы сделать более или менее то, что вы просите, для консоли (то же самое можно сделать с более ранними Python, но не с f-строкой) :
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
На моей машине вывод выглядит так:
Вы можете просто направить вывод в файл или изменить код для вывода напрямую в файл .csv.
Вы можете сделать это просто с помощью командного файла, вот что я быстро написал,
@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
Это довольно просто, вы можете настроить его в соответствии со своими потребностями, но это соответствует вашим требованиям. Я также вижу, что вы хотите, чтобы эти данные были экспортированы в файл, чтобы вы могли вывести содержимое пакетного файла следующим образом:batch.bat > Logs-%date:~10,4%%date:~7,2%%date:~4,2%_%time:~0,2%%time:~3,2%.log
авиаудар