You've already forked journal-log-ubuntu
84 lines
1.5 KiB
Bash
Executable File
84 lines
1.5 KiB
Bash
Executable File
#!/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 echo "" && echo "Must be root or use sudo" && echo "" ; exit ; fi
|
|
|
|
#
|
|
# Create cron job
|
|
#
|
|
cronjob01="0 1 * * 5 root /usr/local/sbin/clear-journal-log >/dev/null 2>&1"
|
|
printf "%s\n\n" "$cronjob01" > /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 executed by cron
|
|
#
|
|
cat > /usr/local/sbin/clear-journal-log <<'EOF'
|
|
#!/usr/bin/env bash
|
|
|
|
#
|
|
# Are we root
|
|
#
|
|
if [[ $(id -u) -ne 0 ]]; then echo "" && echo "Must be root or use sudo" && echo "" ; exit ; fi
|
|
|
|
logfile="/var/log/clear-journal.log"
|
|
datenow="$(date '+%d-%m-%Y %H:%M')"
|
|
|
|
line() {
|
|
printf '%*s\n' 100 '' | tr ' ' '-'
|
|
}
|
|
|
|
#
|
|
# Clear journal log
|
|
#
|
|
line > "$logfile"
|
|
|
|
diskusage="$(journalctl --disk-usage 2>/dev/null)"
|
|
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 2>/dev/null)"
|
|
printf "%s After Cleanup: %s\n" "$datenow" "$diskusage" >> "$logfile"
|
|
|
|
line >> "$logfile"
|
|
|
|
#
|
|
# All done
|
|
#
|
|
printf "\nAll Done...\n"
|
|
|
|
#
|
|
# End of script
|
|
#
|
|
EOF
|
|
|
|
chmod 755 /usr/local/sbin/clear-journal-log
|
|
|
|
#
|
|
# Restart cron
|
|
#
|
|
systemctl restart cron.service
|
|
|
|
#
|
|
# All done
|
|
#
|
|
printf "\nAll Done...\n"
|
|
|
|
#
|
|
# End of script
|
|
#
|