###统计home目录下各个用户的空间使用情况,发送到各用户终端。
#!/bin/bash
echo record time:$(date) >> space_statis.log #记录统计时间
allname=$(ls /home)
num=$(ls /home -l |grep "^d"|wc -l) #用户个数
name=(0 0 0 0 0 0 0 0 0 0 0 0 0)
statis=(0 0 0 0 0 0 0 0 0 0 0 0 0)
trashstat=(0 0 0 0 0 0 0 0 0 0 0 0 0) #初始化数组,分别保存用户名,空间使用量统计,回收站使用量统计数据
for j in $(seq 1 $num)
do
name[$j]=`echo $allname | cut -d' ' -f$j`
var=$(du -sm /home/${name[$j]})
statis[$j]=${var%%/*}
var=$(du -sm /home/${name[$j]}/.local/share/Trash/files)
trashstat[$j]=${var%%/*}
echo username:${name[$j]} >> space_statis.log
echo space statistics:${statis[$j]}M >> space_statis.log
echo trash statistics:${trashstat[$j]}M >> space_statis.log #记录每个用户数据
done
wall < space_statis.log #把统计数据发送到各用户终端
可以不用数组的。。
使用crontab命令设置定时任务,每日一发,效果更佳。