需求须要看看一个目录下文件的大小变化和时间的变化状况,花了点时间写了一个很Low的shell脚本,有意见能够在下方评论,我会及时回复的。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效果以下:bash