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 try: | 4 try:
|
||
5 with open('usage.log', 'a') as log_file: | 5 with open('usage.log', 'a') as log_file:
|
||
6 while True: | 6 while True:
|
||
7 [31m-[0m [31m cpu_percent = psutil.cpu_percent(interval=1) [0m |
|
||
| 7 [32m+[0m [32m cpu = psutil.cpu_percent(interval=1) [0m
|
||
8 mem = psutil.virtual_memory() | 8 mem = psutil.virtual_memory()
|
||
9 [31m-[0m [31m log_entry = f"CPU: {cpu_percent}%, Memory: {mem.percent}%\n" [0m |
|
||
| 9 [32m+[0m [32m timestamp = time.strftime('%Y-%m-%d %H:%M:%S') [0m
|
||
| 10 [32m+[0m [32m log_entry = f"{timestamp} CPU: {cpu}% Memory: {mem.percent}%\n" [0m
|
||
10 log_file.write(log_entry) | 11 log_file.write(log_entry)
|
||
11 log_file.flush() | 12 log_file.flush()
|
||
12 [31m-[0m [31m time.sleep(4) [0m |
|
||
| 13 [32m+[0m [32m time.sleep(4) # Already waited 1 sec in cpu_percent, so sleep 4 more to total 5 [0m
|
||
13 except KeyboardInterrupt: | 14 except KeyboardInterrupt:
|
||
14 [31m-[0m [31m print("Monitoring stopped by user.") [0m |
|
||
| 15 [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.
|