#!/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

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

【shell脚本实战】脚本#35 分析每个用户使用的磁盘空间大小的更多相关文章

  1. 系统磁盘空间/dev/xvda1占满原因分析

    由于项目原因需要定期检查磁盘空间占用情况,常用检查命令如下: 1.查看磁盘空间大小 df -lh 2.查看对应文件大小 du --max-depth=1 -h / 于一日发现在使用Flume + Ka ...

  2. Linux磁盘空间分析及清理(df、du、rm)

    1.df磁盘空间查看 df可以查看一级文件夹大小.使用比例.档案系统及其挂入点. [root@oms ~]# df -Th Filesystem Type Size Used Avail Use% M ...

  3. 面试笔试-脚本-1:使用shell脚本输出登录次数最多的用户

    原题目: 一个文本类型的文件,里面每行存放一个登陆者的IP(某些行是反复的),写一个shell脚本输出登陆次数最多的用户. 之前刚看到这个题目时,立即没有想到一行直接解决的办法,尽管知道能够先进行排序 ...

  4. 案例九:shell脚本自动创建多个新用户,并设置密码

    此脚本是用来批量创建用户并设置用户密码,在企业用非常实用. 脚本一 #!/bin/bash for name in $( seq 1 100 ) do useradd "user$name& ...

  5. Shell脚本实战:日志关键字监控+自动告警

    一个执着于技术的公众号 该程序使用场景说明:主要用于Linux服务器监控程序日志,如出现关键字异常则触发相应的动作或告警操作,通知到邮件联系人. 一.安装邮件服务 1.解压 tar -jxf mail ...

  6. 生产力工具:shell 与 Bash 脚本

    生产力工具:shell 与 Bash 脚本 作者:吴甜甜 个人博客网站: wutiantian.github.io 注意:本文只是我个人总结的学习笔记,不适合0基础人士观看. 参考内容: 王顶老师 l ...

  7. Shell编程(脚本)的经常使用命令和语句

    一些经常使用的Shell编程(脚本)命令和语句,能够满足一般需求. 接收到的命令參数: 參数个数: $# 參数值: 命令本身:$0 第一个參数:$1 第二个參数:$2 -- 退出命令: exit ec ...

  8. 03: shell简单监控脚本

    1.1 监控apache web server #! /bin/bash # apache netstat -anpt | grep 80 &> /dev/null if [ $? -e ...

  9. Bash Shell启动配置脚本的顺序

    1.Bash检查环境变量文件的方式,取决于系统运行Shell的方式,通常系统运行Shell有3种方式: )通过系统用户登陆后默认运行的Shell )非登陆交互式运行Shell )执行脚本运行非交互式S ...

  10. Shell执行将脚本里的变量打印到指定日志文件

    首先需要定位获取任务的运行日志或者报错信息,才能定位问题. 通过shell调用有些脚本的话,日志信息会打印在shell里.不过也有用户在shell里调用正常,但是到crontab调用的时候就出错并且没 ...

随机推荐

  1. flink sql任务出现java.lang.OutOfMemoryError: Metaspace

    线上任务一直出现以下错误导致一直重启,然后一直因为这个错误挂掉 org.apache.flink.shaded.guava18.com.google.common.util.concurrent.Ex ...

  2. Flink常见问题解决记录

    1.Hardlink from files of previous local stored state might cross devices 开启了state.backend.local-reco ...

  3. home条 防止误碰

    某些界面需要隐藏home条,防止误触导致页面返回 - (UIRectEdge)preferredScreenEdgesDeferringSystemGestures { return UIRectEd ...

  4. ZIAO日报 202302

    2023.2 2023年2月14日 10:23 2023.2.14 继续读<Multi-View Transformer for 3D Visual Grounding>,读到了relat ...

  5. 《Makefile中基本字符串替换函数与处理函数的使用参考》

    https://blog.csdn.net/ababab12345/article/details/120723396

  6. CIL指令和指针类型的操作

    对象引用的使用在CIL中受到严格限制.它们几乎完全被使用带有VOS(Virtual Object System)指令,这些指令是专门为处理对象和部分对象引用而设计的. 常规操作如下: 首先我们需要将加 ...

  7. 如何通过使用vscode工具学习ts(typescript)

    1 如果有vscode工具可自行忽略这条:如果没有vscode工具,可进入官网http://vscode.p2hp.com/进行下载,下载过程可自行百度. 2 D盘新建文件夹随意命名为TS-LEAN, ...

  8. linux 复合页( Compound Page )的介绍

    1.复合页的定义: 复合页(Compound Page)就是将物理上连续的两个或多个页看成一个独立的大页,它可以用来创建hugetlbfs中使用的大页(hugepage),  也可以用来创建透明大页( ...

  9. nginx,git,maven面试题

    1.简述一下什么是Nginx,它有什么优势和功能? Nginx是一个web服务器和方向代理服务器,用于HTTP.HTTPS.SMTP.POP3和IMAP协议.因 它的稳定性.丰富的功能集.示例配置文件 ...

  10. Debian 迁移到新硬盘

    老硬盘 A,新硬盘 B,先把B分好区,做好格式化. 准备虚拟机一台,Linux LiveCD光盘或者可用的Linux虚拟机系统,把硬盘A B 映射成虚拟机可以使用的硬盘文件,根据LiveCD新建相应的 ...