diff options
Diffstat (limited to 'ansible/clean-vms/clean-logs.sh')
-rwxr-xr-x | ansible/clean-vms/clean-logs.sh | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/ansible/clean-vms/clean-logs.sh b/ansible/clean-vms/clean-logs.sh new file mode 100755 index 0000000..5d79011 --- /dev/null +++ b/ansible/clean-vms/clean-logs.sh @@ -0,0 +1,45 @@ +#!/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 + |