免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3616 | 回复: 11
打印 上一主题 下一主题

[系统管理] 查看文件夹大小 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-07-20 16:01 |只看该作者 |倒序浏览
各位linux高手,我一个菜鸟想写一个程序,使得home下面的各个账户的大小超过100G就提出警告。但是,不知道错误的地方怎么改,请高手们指教一下

#maxinum file size
alarmrange=100
#dir of working
work_dir=/home
#the list of zhang hu
zhanghu_list=/home/check/zhanghu.txt
#This is the frequency our program runs
sleep_time=100

check_process()
{
for zhanghu in `cat ${zhanghu_list}`
do
size = `du -sh ${work_dir}/${zhanghu} | awk '{print $1}'`
if [ size -gt alarmrange ];then
  echo "Your file was too large (larger than 100G), Please delete the needless file " > ${work_dir}/${zhanghu}/Desktop/Warning.txt
  echo ${zhanghu} > ${work_dir}/check/large_zhanghu.txt
else
  break;
fi
done
}

while true ;do
   check_process
    sleep $sleep_time
done check.rar (808 Bytes, 下载次数: 2)



论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
2 [报告]
发表于 2014-07-20 17:19 |只看该作者
报错信息在哪里?

论坛徽章:
0
3 [报告]
发表于 2014-07-20 17:57 |只看该作者
回复 2# Shell_HAT

size: '=': No such file
size: '67M': No such file
check.sh: line 15: [: size: integer expression expected

后面就不运行了

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
4 [报告]
发表于 2014-07-20 18:00 |只看该作者
size=`du -sh ${work_dir}/${zhanghu} | awk '{print $1}'`
等号两边的空格要删掉

if [ $size -gt $alarmrange ];then
变量名前面的美元符号不能丢

论坛徽章:
0
5 [报告]
发表于 2014-07-20 18:03 |只看该作者
本帖最后由 王康程 于 2014-07-20 18:03 编辑

回复 4# Shell_HAT


   还是报:check.sh: line 15: [: 67M: integer expression expected

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
6 [报告]
发表于 2014-07-20 18:06 |只看该作者
回复 5# 王康程


    你取到的$size变量里面有一个字母M,你要把它去掉,才能放到if里面做比较。

论坛徽章:
0
7 [报告]
发表于 2014-07-20 18:11 |只看该作者
回复 6# Shell_HAT


   怎么去掉呢,只想留着数字

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
8 [报告]
发表于 2014-07-20 18:14 |只看该作者
回复 7# 王康程


size=`du -sh ${work_dir}/${zhanghu} | awk '{print $1+0}'`

论坛徽章:
0
9 [报告]
发表于 2014-07-20 18:20 |只看该作者
回复 8# Shell_HAT


   非常感谢您的帮助

论坛徽章:
0
10 [报告]
发表于 2014-07-21 09:12 |只看该作者
你这个程序会误告警,如果文件大小还没有达到G只是到了M 比如300M那就告警了其实还没有达到实际的阈值 所以这个不能加h参数,直接du -s来比较原始字节大小
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP