linux定期统计某个目录内每天的文件增量大小

1.定义需要统计的目录列表

cat /root/logsize/log.dir

/aplog/service/brm
/aplog/service/epm
/aplog/service/ifs
/aplog/service/mes
/aplog/service/quatrz
/aplog/service/uas
/aplog/web/bc
/aplog/web/interface
/aplog/web/opi

2.统计脚本

cat /root/logsize/logsize.sh

#!/bin/sh
LOGDIR=`cat /root/logsize/log.dir`
echo ${LOGDIR[@]}

for LOG_DIR in ${LOGDIR[@]}
do
YESTERDAY=$(date -d "yesterday" +%Y-%m-%d)
TODAY=$(date +%Y-%m-%d)
LOG_FILES=(`find $LOG_DIR -type f -name "*log.2*"  -newermt "$YESTERDAY 00:00:00" ! -newermt "$TODAY 00:00:00"`)
TOTAL_SIZE=0
for file in ${LOG_FILES[@]}
do
   size=$(du -m "$file" | awk '{print $1}')
   TOTAL_SIZE=$(($TOTAL_SIZE + size))
done
echo $LOG_DIR
echo "$TOTAL_SIZE (M)"
done

3.定时任务

30 14 * * * /root/logsize/logsize.sh > /root/logsize/logsize.out.$(date +"\%Y\%m\%d")

总结

每天统计一次前一天的日志量大小,并将每个目录的大小记录一份日志。

本测试脚本下,所有目录产生的日志均有固定格式,如每个目录不一样的话,需定义find语句中的name变量。

你可能感兴趣的:(Linux,linux,服务器)