38 lines
1.2 KiB
Python
Executable File
38 lines
1.2 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
import re
|
|
from datetime import datetime, timedelta
|
|
|
|
# File path
|
|
log_file_path = '/var/log/pacman.log'
|
|
|
|
# Time of analysis
|
|
now = datetime.now()
|
|
time_threshold = now - timedelta(hours=24)
|
|
|
|
# Regex pattern to extract timestamp and package info
|
|
log_pattern = re.compile(r'\[(.*?)\] \[ALPM\] (installed|upgraded) (.+)')
|
|
|
|
# List to store installed/updated packages
|
|
installed_or_updated = []
|
|
|
|
# Open the log file and parse each line
|
|
with open(log_file_path, 'r') as log_file:
|
|
for line in log_file:
|
|
match = log_pattern.search(line)
|
|
if match:
|
|
timestamp_str, action, package = match.groups()
|
|
timestamp = datetime.strptime(timestamp_str.split('+')[0], '%Y-%m-%dT%H:%M:%S')
|
|
if timestamp > time_threshold:
|
|
formatted_timestamp = timestamp.strftime('%Y-%m-%d %H:%M:%S')
|
|
installed_or_updated.append(f"{formatted_timestamp} - {action} {package}")
|
|
|
|
# Output the result
|
|
if installed_or_updated:
|
|
print("Packages installed or updated in the last 24 hours:")
|
|
for pkg in installed_or_updated:
|
|
print(f"- {pkg}")
|
|
else:
|
|
print("No packages were installed or updated in the last 24 hours.")
|
|
|
|
|