ARCHIVE_DIR="/var/log/openvpn/weekly-logs"
WEEKLY_ARCHIVE_NAME="openvpn-$(date +\%Y-\%m-\%d)_weekly_logs.tar.gz"
RETENTION_DAYS=365 # Keep weekly archives for a year
+TEMP_DIR=$(mktemp -d) # Temporary folder for decompressed logs
+
+# Clean the temporary folder in case of failure
+trap 'rm -rf "$TEMP_DIR"' ERR
# Create archive directory if it doesn't exist
mkdir -p "$ARCHIVE_DIR"
-# Temporary folder for decompressed logs
-TEMP_DIR=$(mktemp -d)
-
# Decompress all rotated daily logs (mylogfile.log.1.gz, mylogfile.log.2.gz, etc.)
for file in $(find "$LOG_DIR" -name "$LOG_FILE-*");
do gzip -d -c $file > "$TEMP_DIR/$(basename $file .gz)";
dest: /etc/logrotate.d/openvpn
notify: restart rsyslog
-- name: Write weekly rotation script on anacron
+- name: Create weekly log rotation script
copy:
src: files/openvpn_weekly_rotation
dest: /etc/cron.weekly/openvpn_weekly_rotation