comp_err - Linux
Overview
comp_err is a command-line utility designed to compare two or more syslog files and identify discrepancies. It helps in troubleshooting errors and system issues by checking for differences in log entries across multiple machines or time periods.
Syntax
comp_err [options] <file1> [<file2> ...]
Options/Flags
- -a, –all: Compare both errors and non-errors.
- -e, –errors: Only compare error messages.
- -s, –silent: Suppress output unless differences are found.
- -v, –verbose: Increase output verbosity.
- -t, –timestamp: Include timestamps in the output.
- -f, –format: Specify the output format (text, xml, json). Default: text.
Examples
Compare two error logs:
comp_err -e error.log1 error.log2
Compare all logs within a directory:
comp_err -a /var/log/*.log
Output in JSON format:
comp_err -f json error.log1 error.log2
Common Issues
- File not found: Ensure that all specified log files exist and are accessible.
- Incorrect format: Verify that the log files are in the correct format (usually syslog).
- No differences: If no differences are reported, the logs are identical.
Integration
Combine with grep:
comp_err error.log1 error.log2 | grep "CRITICAL"
Use in a script:
#!/bin/bash
logs=(/var/log/*.log)
for log in "${logs[@]}"; do
comp_err -e $log
done
Related Commands
- grep: Search for specific patterns in text.
- diff: Compare two files line by line.
- syslog: Logging system for Linux.