Files
journal-log-ubuntu/journal-log-ubuntu

62 lines
1.4 KiB
Plaintext
Raw Permalink Normal View History

2025-12-19 15:14:22 +01:00
#!/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 <<EOF
#!/usr/bin/env bash
logfile="/var/log/clear-journal.log"
line () { for i in {1..100}; do echo -n "$1"; done && printf "\n"; }
datenow=$(date +"%d-%m-%Y %H:%M")
# Clear journal log
line '-' > "$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
#