#!/usr/bin/sh
# /opt/nec/ve/veos/lib64/sa/ve-sa2
# (C) 1999-2024 Sebastien Godard (sysstat <at> orange.fr)
#
#@(#) sysstat-12.7.6
#@(#) ve-sa2: Write a daily report
#
# Changes by NEC Corporation for the VE port, 2020
S_TIME_FORMAT=ISO ; export S_TIME_FORMAT
prefix=/opt/nec/ve
exec_prefix=/opt/nec/ve
DDIR=/var/opt/nec/ve/log/sa
SYSCONFIG_DIR=/etc/sysconfig
SYSCONFIG_FILE=sysstat
HISTORY=28
COMPRESSAFTER=31
ZIP="xz"
UMASK=0022
ENDIR=
DELAY_RANGE=0

# Read configuration file, overriding variables set above
[ -r ${SYSCONFIG_DIR}/ve_sysstat ] && . ${SYSCONFIG_DIR}/ve_sysstat

umask ${UMASK}

# Wait for a random delay if requested
if [ ${DELAY_RANGE} -gt 0 ]
then
	RANDOM=$$
	DELAY=$((${RANDOM}%${DELAY_RANGE}))
	sleep ${DELAY}
fi

[ -d ${DDIR} ] || DDIR=/var/opt/nec/ve/log/sa

# if YESTERDAY=no then today's summary is generated
if [ x$YESTERDAY = xno ]
then
	DATE_OPTS=
else
	DATE_OPTS="--date=yesterday"
fi

if [ ${HISTORY} -gt 28 ]
then
	DATE=`date ${DATE_OPTS} +%Y%m%d`
else
	DATE=`date ${DATE_OPTS} +%d`
fi

CURRENTFILE_ALL_NODE=sa${DATE}_*
CURR_FILE_TEMP=(${DDIR}/${CURRENTFILE_ALL_NODE})
for CURRENTFILE in "${CURR_FILE_TEMP[@]}"; do
        FILE=$(echo $CURRENTFILE | awk -v FS="(sa${DATE}_)" '{print $2}')
        CURRENTRPT=sar${DATE}_${FILE}
        RPT=${DDIR}/${CURRENTRPT}
        if [[ -f ${FILE} && ( ${VE_NODE_NUMBER} && ${VE_NODE_NUMBER} -ne ${FILE} ) ]]
        then
        continue
        fi
        ENDIR=/opt/nec/ve/bin
        DFILE=${CURRENTFILE}
        [ -f "$DFILE" ] || exit 0
        cd ${ENDIR}
        if [ x${REPORTS} != xfalse ]
        then
                ${ENDIR}/ve-sar $* -f ${DFILE} > ${RPT}
        fi
done

SAFILES_REGEX='/sar[0-9]{2,8}[\_][0-9]{1}.\<(Z|gz|bz2|xz|lz|lzo)\>'

find "${DDIR}" -type f -mtime +${HISTORY} \
        | grep -E "${SAFILES_REGEX}" \
        | xargs   rm -f > /dev/null

UNCOMPRESSED_SAFILES_REGEX='/sar[0-9]{2,8}[\_][0-9]{1}'

find "${DDIR}" -type f -mtime +${COMPRESSAFTER} \
        | grep -E "${UNCOMPRESSED_SAFILES_REGEX}" \
        | xargs -r "${ZIP}" > /dev/null

exit 0

