#!/bin/bash # # Tom Huerlimann, office@thuinformatik.ch # 24.04.2021 v1.0 # How old files should be identified # (not mofiend since X days) OLD_FILE="100" # How big files should be identified # (b - 512-byte blocks (this is the default if no suffix is used), c - bytes, w - two-byte words, k - Kilobytes, M - Megabytes, G - Gigabytes) BIG_FILE="200M" # Modify as required below for FILE in /var/lib/docker/volumes/egroupware-docker_data/_data/default/files/groupdav/**/*.log; do FILELIST=`ls -ltrah "${FILE}"` echo "CHECK: "${FILE}" ..." if [[ $(find "${FILE}" -type f -mtime +"${OLD_FILE}" -print) ]]; then echo "RESLT: file is old, can be deleted!" # echo ".. is not older than 100 days" rm -rf "${FILE}" if [ $? -eq 0 ]; then echo "SCCSS: file has been deleted!" else echo "ERROR: file can't be deleted!" fi echo "RESLT: file is old, it has been deleted!" else echo "RESLT: file is not old, check size ..." if [[ $(find "${FILE}" -type f -size +"${BIG_FILE}" 2>/dev/null) ]]; then echo "CHECK: check rotation state ..." for i in {5..1}; do if [ -f "${FILE}.5.tar.gz" ]; then echo "CHECK: 5.tar.gz present ..." rm -rf "${FILE}.5.tar.gz" if [ $? -eq 0 ]; then echo "SCCSS: file has been deleted!" else echo "ERROR: file can't be deleted!" fi fi if [ -f "${FILE}.4.tar.gz" ]; then echo "CHECK: 4.tar.gz present ..." mv -f "${FILE}.4.tar.gz" "${FILE}.5.tar.gz" if [ $? -eq 0 ]; then echo "SCCSS: file has been rotated!" else echo "ERROR: file can't be rotated!" fi fi if [ -f "${FILE}.3.tar.gz" ]; then echo "CHECK: 3.tar.gz present ..." mv -f "${FILE}.3.tar.gz" "${FILE}.4.tar.gz" if [ $? -eq 0 ]; then echo "SCCSS: file has been rotated!" else echo "ERROR: file can't be rotated!" fi fi if [ -f "${FILE}.2.tar.gz" ]; then echo "CHECK: 2.tar.gz present ..." mv -f "${FILE}.2.tar.gz" "${FILE}.3.tar.gz" if [ $? -eq 0 ]; then echo "SCCSS: file has been rotated!" else echo "ERROR: file can't be rotated!" fi fi if [ -f "${FILE}.1.tar.gz" ]; then echo "CHECK: 1.tar.gz present ..." mv -f "${FILE}.1.tar.gz" "${FILE}.2.tar.gz" if [ $? -eq 0 ]; then echo "SCCSS: file has been rotated!" else echo "ERROR: file can't be rotated!" fi fi if [ -f "${FILE}" ]; then echo "CHECK: current present ..." tar -czvf "${FILE}" "${FILE}.1.tar.gz" if [ $? -eq 0 ]; then echo "SCCSS: file has been compressed!" else echo "ERROR: file can't be compressed!" fi echo -n "" > "${FILE}" if [ $? -eq 0 ]; then echo "SCCSS: file has been truncated!" else echo "ERROR: file can't be truncated!" fi fi done fi fi done