shell脚本:统计分析 /home/ 目录用户磁盘使用情况
一、统计单台机器 /home/ 目录下磁盘空间使用 top3 的用户
common.sh 脚本用于统计 /home/* 目录下存储空间 top3 的用户。
du -sb /home/* |sort -nr |head -n 3 #单位为B
二、统计分析多台分布式机器上 /home/ 目录用户磁盘使用情况
#!/bin/sh
# set -x # 打印执行过程 SUBMIT_NODES="submit_nodes.txt"
RESULT="result.txt"
RESULT_TMP="result_tmp.txt"
RESULT_SORTED="result_sorted.txt"
>$RESULT>$RESULT_TMP
>$RESULT_SORTED # 获取机器存储资源占用top3的用户
while read node
do
echo $node
ip=`echo $node | awk '{print $2}'`
hostname=`echo $node | awk '{print $1}'`
# du -sb /home/* |sort -nr |head -n 3 | awk '{print $2}' |awk -F '/' '{print $3}'
sshpass -p GHlsgj123fkjg ssh -p 22 root@$ip ~/common.sh < /dev/null > $RESULT_TMP
# 文本后面追加主机名
sed "s/$/ $hostname/g" $RESULT_TMP >> $RESULT
done < $SUBMIT_NODES while read detail
do
size=`echo $detail | awk '{print $1}'`
user=`echo $detail | awk '{print $2}' | awk -F '/' '{print $3}'`
host=`echo $detail | awk '{print $3}'` # size >20G 则提示存储空间过大
# 10737418240 = 1024*1024*1024
base=21474836480
point=1073741824
if [ $size -gt $base ]
then
ret=""
# 判断用户名是否是纯数字
if echo $user | grep -q '.*[a-zA-Z].*\+$' #user中包含字母,则不是纯数字
then
echo "用户名中包含数字"
else
echo "用户名为纯数字"
fi
# 将size的单位B转换为GB
size_gb=`awk 'BEGIN{printf "%.2f\n",'$size'/'$point'}'`
fi
done < $RESULT_SORTED
三、脚本中各文本存储的内容
submit_nodes.txt 文本为分布式的多台机器的主机名和ip映射关系:
bj01-prd-hdcm12.vivo.lan 10.20.8.44
bj01-prd-hdcm11.vivo.lan 10.20.8.43
bj01-prd-hdcm10.vivo.lan 10.20.8.42
bj01-prd-hdcm09.vivo.lan 10.20.8.41
bj01-prd-hdcm08.vivo.lan 10.20.8.40
result_tmp.txt 文本统计中common.sh 脚本的结果:
/home/lzjiang
/home/bchan
/home/lshen
result.txt 则在 result_tmp.txt 的基础上添加用户所在的主机,内容为:
/home/yi bjthq-dm-submit003.vivo.lan
/home/zqe bjthq-dm-submit003.vivo.lan
/home/lsen bjthq-dm-submit003.vivo.lan
/home/xye bjthq-dm-submit002.vivo.lan
/home/lmie bjthq-dm-submit002.vivo.lan
/home/lpliu bjthq-dm-submit002.vivo.lan
/home/lzjiang bjthq-dm-submit001.vivo.lan
/home/bchn bjthq-dm-submit001.vivo.lan
/home/lhen bjthq-dm-submit001.vivo.lan
result_sorted.txt 文本为根据空间大小降序排序后的结果:
/home/hbxie bjthq-dm-submit024.vivo.lan
/home/bhuag bjthq-dm-submit025.vivo.lan
/home/lzjang bjthq-dm-submit001.vivo.lan
/home/lmxie bjthq-dm-submit015.vivo.lan
/home/mxzhao bj01-prd-hdcm01.vivo.lan
shell脚本:统计分析 /home/ 目录用户磁盘使用情况的更多相关文章
- Shell脚本中实现切换用户并执行命令操作【转】
		第一种方法 cat test.sh #!/bin/bashsu - test <<EOFpwd;exit;EOF 执行结果图: 第二种方法 当然也可以用下面的命令来执行 复制代码代码如下: ... 
- (转)通过shell脚本实现批量添加用户和设置随机密码以及生产环境如何批量添加
		通过shell脚本实现批量添加用户和设置随机密码以及生产环境如何批量添加 原文:http://www.21yunwei.com/archives/4773 有一个朋友问我如何批量创建用户和设置密码 , ... 
- Shell脚本实现检测某ip网络畅通情况,实战用例
		Shell脚本实现检测某ip网络畅通情况,实战用例 环境准备,linux shell 发送email 邮件:1.安装sendmailyum -y install sendmail安装好sendmail ... 
- Shell脚本中怎么实现用户切换实现操作
		当我们在服务器上面疯狂的进行操作的时候,我们用shell脚本来帮我们来完成一些基本的任务,但是一些命令或者一些操作需要我们不断切换用户来实现的话,在shell脚本就不那么好实现了,那么我们在shell ... 
- shell脚本 批量转换目录下文件编码
		发布:JB01 来源:脚本学堂 [大 中 小] 分享一例shell脚本,实现可以批量转换目录下的文件编码,很实用的一个小shell,有需要的朋友参考下.原文地址:http://www.jb ... 
- 学习Shell脚本编程(目录)
		所涉及的内容如下: Shell命令行的运行 编写.修改权限和执行Shell程序的步骤 在Shell程序中使用参数和变量 表达式比较.循环结构语句和条件结构语句 在Shell程序中使用函数和调用其他Sh ... 
- jenkins中使用shell脚本必须切换jenkins用户
		https://blog.csdn.net/cdnight/article/details/81078191 安装这篇解决的 正确使用脚本的方式: 1.脚本必须使用jenknins用户,且所有命令必须 ... 
- 获取shell脚本自身所在目录的Shell脚本分享
		前几天写的七牛的参赛demo,用bash写了一个便捷安装的脚本,涉及到了路径相关的判断,从stackoverflow,加上自己的实践整理一下. 简单版 下面是一个最简单的实现,可以解决大多数问题,缺陷 ... 
- 【shell脚本练习】判断用户存在和用户类型
		题目 写一个脚本 1. 传递一个参数给脚本,此参数为用户名: 2. 如果用户存在,则执行如下任务 * 如果用户的id号小于500,显示其为管理员或系统用户: * 否则,显示其为普通用户: 3. 如果用 ... 
随机推荐
- 团队第三次作业:Alpha版本第二周小结
			姓名 学号 周前计划安排 每周实际工作记录 自我打分 XXX 061109 1.对原型设计与编码任务进行进一步的规划与任务分配 2.协调与统一已完成的部分原型设计页面风格并针对部分页面提出了改进建议 ... 
- MongoDB安全运维
			0×00 MongoDB权限介绍 1.MongoDB安装时不添加任何参数,默认是没有权限验证的,登录的用户可以对数据库任意操作而且可以远程访问数据库,需以–auth参数启动. 2.在刚安装完毕的时候M ... 
- CSS3 -- 边框圆角
			文章后有彩蛋哦 <!DOCTYPE html> <html lang="en"> <head> <meta charset="U ... 
- BZOJ 3895 3895: 取石子 / Luogu SP9934 ALICE - Alice and Bob (博弈 记忆化搜索)
			转自PoPoQQQ大佬博客 题目大意:给定n堆石子,两人轮流操作,每个人可以合并两堆石子或拿走一个石子,不能操作者输,问是否先手必胜 直接想很难搞,我们不妨来考虑一个特殊情况 假设每堆石子的数量都&g ... 
- 04 DRF内容回顾、用户登录 (含跨域) (vuex vue-cookie)、用户认证 (Auth认证)(拦截器)
			1.内容回顾 1.视图中常见的继承 2.频率访问控制源码 3.序列化,反序列化 2.初始化代码 1.后端代码:AuthView (1)目录结构 (2)urls (3)view (4)注释掉cors ( ... 
- 题解  [BZOJ2159] Crash的文明世界
			题面 解析 这题一眼换根DP啊 首先,我们考虑一下如何转换\(n^m\)这个式子, 先把式子摆出来吧:\(n^m=\sum_{j=0}^mS(m,j)C_n^jj!\) 其中\(S(m,j)\)表示第 ... 
- could not load file or assembly "System.Web.Mvc...
			1.一般出现这个错误是因为Web.Config里面的版本号跟project用到的dll版本对应不上 更改webconfig <add assembly="System.Web.Mvc, ... 
- useradd/usermod/userdel/passwd/groupadd/groupmod/groupdel/gpasswd
			用户 用户系统也是通过一个文件来管理的,默认的root用户id是0, shadow文件说明 加密算法类别 $后面的数字6指定了加密算法使用的是第六种,sha512加密 增加用户,修改成同样的密码,查看 ... 
- Hibernate 4 升级到 5 后显示未知实体错误
			提示的错误信息如下: org.hibernate.MappingException: Unknown entity: com.ossez.reoc.common.crm.DoNotCall at or ... 
- hdu  2510
			Tiling_easy version Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ... 
