Situatie
This script can be useful for network administrators or system administrators who need to analyze log files and get an overview of how much time a particular user or IP address has spent connected to the system. To make this task easier, we can use a shell script to automate the process of extracting this information from a log file.
Solutie
Pasi de urmat
#!/bin/bash
# Define the log file to be analyzed
log_file="/path/to/logfile.log"
# Define the output file for the report
output_file="/path/to/report.txt"
# Initialize a variable to store the cumulative connection time
connection_time=0
# Get a list of unique months and years from the log file
months_years=$(grep -oE "[A-Za-z]{3} [0-9]{4}" "$log_file" | sort | uniq)
# Loop through each month and year
for month_year in $months_years; do
# Extract the number of minutes for the current month and year
minutes=$(grep "$month_year" "$log_file" | awk '{print $2}' | cut -d ':' -f 2 | paste -sd+ - | bc)
# Add the minutes to the cumulative connection time
connection_time=$((connection_time + minutes))
# Output the result to the report file
echo "$month_year: $minutes minutes" >> "$output_file"
done
# Output the final cumulative connection time to the report file
echo "Total connection time: $connection_time minutes" >> "$output_file"

Leave A Comment?