40 lines
1.0 KiB
Bash
Executable File
40 lines
1.0 KiB
Bash
Executable File
#!/bin/bash
|
|
#
|
|
# Lynis Security Report - Weekly Cron Job
|
|
# Place this file in /etc/cron.weekly/
|
|
# Make it executable: chmod +x /etc/cron.weekly/lynis-weekly
|
|
#
|
|
|
|
# Script directory
|
|
SCRIPT_DIR="/opt/lynis-report"
|
|
|
|
# Python virtual environment
|
|
VENV_DIR="$SCRIPT_DIR/venv"
|
|
|
|
# Log file
|
|
LOG_FILE="/var/log/lynis-report.log"
|
|
|
|
# Change to script directory
|
|
cd "$SCRIPT_DIR" || {
|
|
echo "$(date): ERROR - Cannot change to directory $SCRIPT_DIR" >> "$LOG_FILE"
|
|
exit 1
|
|
}
|
|
|
|
# Log execution start
|
|
echo "$(date): Starting Lynis weekly report" >> "$LOG_FILE"
|
|
|
|
# Activate virtual environment and run the script
|
|
if [ -d "$VENV_DIR" ]; then
|
|
"$VENV_DIR/bin/python3" "$SCRIPT_DIR/lynis_report.py" >> "$LOG_FILE" 2>&1
|
|
else
|
|
# Fallback to system python3 if venv doesn't exist
|
|
python3 "$SCRIPT_DIR/lynis_report.py" >> "$LOG_FILE" 2>&1
|
|
fi
|
|
|
|
# Log execution result
|
|
if [ $? -eq 0 ]; then
|
|
echo "$(date): Lynis weekly report completed successfully" >> "$LOG_FILE"
|
|
else
|
|
echo "$(date): ERROR - Lynis weekly report failed with exit code $?" >> "$LOG_FILE"
|
|
fi
|