TASK: Write a Python script 'system_monitor.py' that logs CPU and memory usage to 'usage.log' every 5 seconds. Ensure it handles keyboard interrupts.
|
||
----------------------------------------
|
||
Loading...
|
||
|
||
-> Writing file: system_monitor.py
|
||
|
||
[36m [2m CHANGES: system_monitor.py [0m
|
||
LINE OLD | LINE NEW
|
||
--------------------------------------------------------------------------------------------------------------------------------------------
|
||
1 import psutil | 1 import psutil
|
||
2 import time | 2 import time
|
||
3 | 3
|
||
4 [31m-[0m [31mLOG_FILE = 'usage.log' [0m |
|
||
5 [31m-[0m [31mINTERVAL = 5 # seconds [0m |
|
||
6 [31m-[0m [31m [0m |
|
||
7 try: | 4 try:
|
||
8 [31m-[0m [31m with open(LOG_FILE, 'a') as log: [0m |
|
||
| 5 [32m+[0m [32m with open('usage.log', 'a') as log_file: [0m
|
||
9 while True: | 6 while True:
|
||
10 cpu_percent = psutil.cpu_percent(interval=1) | 7 cpu_percent = psutil.cpu_percent(interval=1)
|
||
11 mem = psutil.virtual_memory() | 8 mem = psutil.virtual_memory()
|
||
12 log_entry = f"CPU: {cpu_percent}%, Memory: {mem.percent}%\n" | 9 log_entry = f"CPU: {cpu_percent}%, Memory: {mem.percent}%\n"
|
||
13 [31m-[0m [31m log.write(log_entry) [0m |
|
||
14 [31m-[0m [31m log.flush() [0m |
|
||
15 [31m-[0m [31m print(log_entry.strip()) [0m |
|
||
16 [31m-[0m [31m time.sleep(INTERVAL - 1) [0m |
|
||
| 10 [32m+[0m [32m log_file.write(log_entry) [0m
|
||
| 11 [32m+[0m [32m log_file.flush() [0m
|
||
| 12 [32m+[0m [32m time.sleep(4) [0m
|
||
17 except KeyboardInterrupt: | 13 except KeyboardInterrupt:
|
||
18 [31m-[0m [31m print('Monitoring stopped by user.') [0m |
|
||
| 14 [32m+[0m [32m print("Monitoring stopped by user.") [0m
|
||
|
||
The script 'system_monitor.py' has been created. It logs CPU and memory usage to 'usage.log' every 5 seconds and gracefully handles keyboard interrupts. If you need to run it or modify it further, let me know!
|