一、注释
1、pssh -P 打印输出,-h远程主机列表;
2、${a//-/} 变量子串,替换所有-为空,即删除;
3、BEGIN/END:awk特殊模式,本文用来打印菜单&获取循环结果;
4、awk数组:与shell不同,下标不局限为数字;
5、sub:awk内置函数,替换字符串内容,本文用来删除IP地址后冒号;
6、printf:格式化输出
7、区分开pattern {action}
二、代码及函数注释
#!/bin/bash
#2018-09-24磁盘统计##
a=$(date "+%F")
#1、获取主机磁盘信息,追加到以当前时间命名的log文件
log_file() {
/usr/local/bin/pssh -Ph pssh.txt "df -h |awk '/data/' " >data${a//-/}.log
/usr/local/bin/pssh -Ph pssh.txt "df -h |awk '/var/' " >>var${a//-/}.log
}
log_file
#2、过滤nfs磁盘使用率,并统计被多少主机挂载
nfs_data() {
/usr/bin/awk 'BEGIN{ printf "num\tFilesystem\t\t\tUse%\n"}'
/usr/bin/awk '$7~/data/{b[$2"\t"$6]++}END{for(i in b){printf "%-d\t%-10s\n",b[i],i}}' data${a//-/}.log |sort -rn -k3
}
nfs_data
echo "=&#