#!/bin/bash # Этот скрипт производит очистку файловой БД stargazer-а. # Его можно вызывать вручную или покрону, к примеру раз в неделю или раз в месяц. # Эта переменная задает сколько месяцев детальной статистики оставить в БД SAVE_MONTHS=3 # Эта переменная задает сколько строк оставить в логах юзеров MAX_LOG_LINES=5000 # Тут определяется путь к БД DB=/var/stargazer/ declare -i NOW=`date +%s` declare -i DT=SAVE_MONTHS*31*24*3600 declare -i stat_time=0 for usr in $DB/users/* do echo cleaning `basename $usr` for ys in $usr/detail_stat/* do year=`basename $ys` for ms in $ys/* do month=`basename $ms` stat_time=`date --date="$year/$month/01" +%s` if (( $NOW - $stat_time > $DT )) then rm -fr $ms fi done done tail -n $MAX_LOG_LINES $usr/log > /tmp/stg_usr_log.`basename $usr` mv -f /tmp/stg_usr_log.`basename $usr` $usr/log done