#!/bin/bash
#设置 一个变量代表临界值,看看是否能超过这个值,单位是MB
MAXDISKUSAGE=20000
#cut -d: -f1,3 /etc/passwd | awk -F: '$2 >99 {print $1} 代表的含义是:cut命令以 :为分隔符获取第1个字符
#和第三个字符组成新的字符串(还是以:连接的),
#然后 awk 以 :为分隔符 取出 判断条件是$2 大于 99 打印 $1 的数值 接下来进行for循环
for name in $(cut -d: -f1,3 /etc/passwd | awk -F: '$2 >99 {print $1})
do
/bin/echo -n "User $name exceeds disk quota.disk usage is:"
# find -xdev 表示:Don't descend directories on other filesystems. -xdev 确保find不会去遍历所有的
#文件系统,排除系统区域,只读源目录,可移动设备、/proc运行目录(linux系统)等类似位置。
#-ls 代表 list current file in ls -dils format on standard output.
#ls -dils -d:显示目录信息,而不是目录下的文件信息, -i:列出文件或者目录的索引节点号 -l:显示详细信息
#-s:以块大小为单位列出所有文件大小 find / /usr /var /home -xdev -user $name -type f -ls | \
awk '{ sum += $7} END {print sum / (1024*1024) "Mbytes"}' #awk "\$9 > $MAXDISKUSAGE { print \$0 } 这句话应该跟for循环连着看, 他们直接是以 | 连接的,
#而for 循环的输出语句应该是 User $name exceeds disk quota.disk usage is: sum Mbytes
#所以$9 代表的是sum值 ,只有大于20000的sum值才允许打印出来。$0 打印整个语句。
#$9 和 $0 前面的 \ 引号的意思还是转义,因为他的awk 后面接的语句用的是双引号,所以要想识别变量
#需要使用转义符识别。
done | awk "\$9 > $MAXDISKUSAGE { print \$0 }"
exit 0

------------恢复内容结束------------

最新文章

  1. 关于web端功能测试的测试方向
  2. 关于Android程序设计—有道词典demo转移至coding的公告
  3. UI第三节——UIView详解
  4. leetcode 116- Populating Next Right Pointers in Each Node
  5. muduo库安装
  6. SpringMVC参数类型转化错误调试方法
  7. 【翻译】使用CSS3和jQuery制作跟随鼠标方位的Hover特效
  8. PHP的接口(interface)
  9. 在Apache中开启虚拟主机
  10. 生成N个不相等的随机数
  11. Python新手学习基础之循环结构练习
  12. CMD Create Database & Table
  13. 大数据学习之HDFS基本API操作(上)06
  14. Unity端游无法下载资源问题
  15. jQuery.parseJSON()方法
  16. Deepin中设置文件或文件夹权限
  17. 使用swagger来编写在线api文档
  18. 网关绑定命令,解决arp攻击
  19. IPv4和IPv6的差异;如何实现IPv4和IPv6双协议栈的通信
  20. 基于Apache在本地配置多个虚拟主机站点

热门文章

  1. C3861: “CoInitialize”“CoUninitialize”: 找不到标识符
  2. T137226 彩虹海
  3. 思科数据中心CCIE稳定PASS
  4. 日志分析查看—— cat+grep+awk+uniq+sort+wc+join
  5. 成品直播源码,Flutter 夜间模式 全局字体
  6. QE11 / QE51N 界面太小问题
  7. ubuntu系统更换源和apt命令参数
  8. 微信小程序搜索排名权重!
  9. vim重复、删除、复制、粘贴命令
  10. node_modules修改?