From 631312cdb33804d0b002943c59354467c417e13c Mon Sep 17 00:00:00 2001 From: David Schroeder Date: Wed, 8 Nov 2023 09:03:46 -0600 Subject: [PATCH] Update offsite-power-check.sh --- offsite-power-check.sh | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/offsite-power-check.sh b/offsite-power-check.sh index 44f47989..f10a31bf 100755 --- a/offsite-power-check.sh +++ b/offsite-power-check.sh @@ -2,9 +2,13 @@ PW_FOLDER='/opt/idssys/powerwall' PW_LOGFOLDER=${PW_FOLDER}/logs +PW_LOGARCHIVE=${PW_FOLDER}/logs/archive +PW_TMPFOLDER=${PW_FOLDER}/.tmp +[ ! -d ${PW_LOGFOLDER} ] && mkdir ${PW_LOGFOLDER} +[ ! -d ${PW_LOGARCHIVE} ] && mkdir ${PW_LOGARCHIVE} +[ ! -d ${PW_TMPFOLDER} ] && mkdir ${PW_TMPFOLDER} PW_LOGFILE=${PW_LOGFOLDER}/logfile PW_LOGPOWER=${PW_LOGFOLDER}/log-power -PW_TMPFOLDER=${PW_FOLDER}/.tmp [ ! -f ${PW_LOGFILE} ] && touch ${PW_LOGFILE} [ ! -f ${PW_LOGPOWER} ] && touch ${PW_LOGPOWER} @@ -132,10 +136,37 @@ PWO_RESTART() { } +LOGROTATE(){ + lm=`expr $(date +'%m') - 1` + if [ ${lm} = 0 ]; then + lm=12 + ly=`expr $(date +'%Y') - 1` + else + ly=$(date +'%Y') + fi + [ ${lm} -lt 10 ] && lm="0${lm}" + ARCHIVEFOLDER=${PW_LOGARCHIVE}/${ly}-${lm} + mkdir -p ${ARCHIVEFOLDER} + mv ${PW_LOGFOLDER}/log* ${ARCHIVEFOLDER}/ 2> /dev/null + [ ! -f ${PW_LOGFILE} ] && touch ${PW_LOGFILE} + [ ! -f ${PW_LOGPOWER} ] && touch ${PW_LOGPOWER} + backupstokeep=(`ls -d ${PW_LOGARCHIVE}/* 2> /dev/null | sort | tail -12`) + for folder in $(ls -d ${PW_LOGARCHIVE}/* | sort -r); do + keep=0 + for filetokeep in ${backupstokeep[@]}; do + if [ "${folder}" == "${filetokeep}" ]; then + keep=1; break + fi + done; + [ ${keep} == 0 ] && rm -Rf ${folder} + done +} + case $1 in start) PWO_START &;; stop) PWO_STOP;; restart) PWO_RESTART;; + logrotate) LOGROTATE;; update) cd ${PW_FOLDER} if [ "`git log --pretty=%H ...refs/heads/master^ | head -n 1`" != "`git ls-remote origin -h refs/heads/master |cut -f1`" ]; then