#!/usr/bin/env bash # Author : Allan Christensen # First Created : 23-11-2021 (DD-MM-YYYY) # Description : Clears the journal log once a week on Ubuntu 24.04 # License : MIT License # # Are we root # if [[ $(id -u) -ne 0 ]]; then printf "\nMust be root or use sudo!\n\n"; exit; fi # # Create cron job # cronjob01="0 2 * * 7 root /usr/local/sbin/clear-journal-log >/dev/null 2>&1" echo "$cronjob01" > /etc/cron.d/clear-journal-log echo "" >> /etc/cron.d/clear-journal-log # # Ensure correct permissions for /etc/cron.d entries # chmod 644 /etc/cron.d/clear-journal-log chown root:root /etc/cron.d/clear-journal-log # # Create script to clear the journal log executed by cron # cat > /usr/local/sbin/clear-journal-log < "$logfile" diskusage=$(journalctl --disk-usage) printf "%s Before Cleanup: %s\n" "$datenow" "$diskusage" >> "$logfile" journalctl --rotate >/dev/null 2>&1 journalctl --vacuum-time=3d >/dev/null 2>&1 diskusage=$(journalctl --disk-usage) printf "%s After Cleanup: %s\n" "$datenow" "$diskusage" >> "$logfile" line '-' >> "$logfile" EOF chmod 755 /usr/local/sbin/clear-journal-log # # Restart cron # systemctl restart cron.service # # All done # printf "\nAll Done...\n" # # End of script #