#!/bin/bash

#
# ToDo
# truncate -s 0 /var/log/syslog
# /var/log/journal/f* (new in 18.10)
#

# clean traditional logs etc.
find /var/log/ -type f -name "*.gz" -exec rm -f {} \;
find /var/log/ -type f -name "*.1" -exec rm -f {} \;
find /var/log/ -type f -name "*.old" -exec rm -f {} \;

# clean systemd's journal
if [[ -d /var/log/journal || -d /run/log/journal/ ]]; then
    systemctl stop systemd-journald
    journal_dirs1=$(find /var/log/journal/ -maxdepth 1 -type d -name "a*")
    journal_dirs2=$(find /run/log/journal/ -maxdepth 1 -type d -name "f*")
    journal_dirs3=$(find /run/log/journal/ /var/log/journal/ -maxdepth 1 -type d -name "[0-9]*" 2> /dev/null)
    journal_dirs="$journal_dirs1 $journal_dirs2 $journal_dirs3";

    for j in $journal_dirs; do
        echo "removing ${j}"
        rm -rf $j
    done
    systemctl start systemd-journald
fi

# clean atop logs
if [[ -d /var/log/atop ]]; then
    systemctl stop atop
    rm -f /var/log/atop/*
    systemctl start atop
fi

# clean samba logs
if [[ -d /var/log/samba ]]; then
    rm -rf /var/log/samba/*
fi

# at last truncate all *.log
find /var/log/ -name "*.log" -exec truncate -s 0 {} \;

exit 0