1 脚本内容
[root@ysw script]# cat dir_size.moniter.sh
#!/bin/bash
#zabbix LLD 自动发现脚本
#作者:醉眼看人间,个个都温柔
#功能:自动发现某个文件夹下次级的所有目录大小 单位b
DIR=$1
if [ ! -n "$DIR" ]; then
echo "此脚本需要位置传参指定目录"
exit
fi
dirarray=(`ls -l $DIR | grep "^d" |awk '{print $9}'`)
length=${#dirarray[@]}
echo "{"
echo " \"data\":["
for ((i=0;i<$length;i++))
do
DIR_NAME=`echo ${dirarray[$i]}`
DIR_SIZE=`du -sk $DIR/${dirarray[$i]}/ |awk '{print $1}'`
echo ' {'
echo " \"{#DIR_NAME}\":\"${DIR_NAME}\","
echo " \"{#DIR_SIZE}\":\"${DIR_SIZE}\""
if [ $i -lt $[$length-1] ];then
echo ' },'
fi
done
echo ' }'
echo " ]"
echo "}"
[root@ysw script]#
2 脚本执行结果
[root@ysw script]# sh dir_size.moniter.sh /tmp/
{
"data":[
{
"{#DIR_NAME}":"ansible_setup_payload_1KmI7A",
"{#DIR_SIZE}":"176"
},
{
"{#DIR_NAME}":"ansible_setup_payload_TRuv_0",
"{#DIR_SIZE}":"176"
},
{
"{#DIR_NAME}":"ansible_setup_payload_wp8wSd",
"{#DIR_SIZE}":"176"
},
{
"{#DIR_NAME}":"hsperfdata_root",
"{#DIR_SIZE}":"4"
},
{
"{#DIR_NAME}":"zabbix",
"{#DIR_SIZE}":"80"
}
]
}
[root@ysw script]