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?