需求需要看看一个目录下文件的大小变化和时间的变化情况,花了点时间写了一个很Low的shell脚本,有意见可以在下方评论,我会及时回复的。

#/bin/bash
#需要修改directory的目录的值换成自己的,之后加crontab " */5 * * *  * /home/wuyantao/directory.sh",添加执行权限 chmod +x directory.sh
#统计的目录就修改下面的注意后面没有"/" 
directory="/home/wuyantao"
#最后统计的位置的结果保存的位置文件绝对路径
directorylog="/tmp/directory.log"

echo "#################################开始##################################"
echo -n "目录的总大小为:"
du -sh $directory |cut -f 1 
echo "目录详细情况为:"
du -sh $directory/*
echo -e "\n"
du -sk $directory/* |sort -nr |cut -f 2 > /tmp/zong.log 

for xx in `cat /tmp/zong.log`
do
if [ -f $xx ]
then
echo $xx >> /tmp/wenji2.log
ls -l $xx |awk '{print $8"--"$6"--"$7}' >> /tmp/wenji3.log
elif [ -d $xx ]
then
   echo $xx >> /tmp/mulu2.log
ls -ld $xx |awk '{print $8"--"$6"--"$7}' >> /tmp/mulu3.log
fi
done
##################分别处理文件,目录######################################################
for aa in `cat /tmp/wenji2.log`
do
du -sh $aa >> /tmp/wenji4.log 
done
for bb in `cat /tmp/mulu2.log`
do
du -sh $bb >> /tmp/mulu4.log 
done

paste /tmp/wenji3.log /tmp/wenji4.log > /tmp/wenji5.log
paste /tmp/mulu3.log /tmp/mulu4.log > /tmp/mulu5.log
cat /tmp/wenji5.log /tmp/mulu5.log >> $directorylog
shijian=`date "+%Y-%m-%d %H:%M:%S"`
echo "更新的时间为:$shijian" >> $directorylog
echo "##################################################################################" >> $directorylog
rm -f /tmp/zong.log /tmp/wenji3.log /tmp/mulu3.log /tmp/wenji2.log /tmp/mulu2.log /tmp/mulu4.log /tmp/wenji4.log /tmp/mulu5.log /tmp/wenji5.log
echo "###############################结束###################################"

最后的日志directorylog效果如下:

QQ截图20190611083440.jpg