You've already forked journal-log-ubuntu
62 lines
1.4 KiB
Plaintext
62 lines
1.4 KiB
Plaintext
|
|
#!/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
|
||
|
|
#
|