# 检查CPU核心数
check_cpu(){
echo '#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#'
ansible -i hosts.txt all -m shell -a "lscpu | grep -w 'CPU(s):' | grep -v NUMA | awk '{print \$1,\$2}'"| awk ' {print $1,$2;}' | tr '|' ' ' | awk '{if(NR%2!=0)ORS=" ";else ORS="\n"}1' | awk '{printf "%-20s %-20s %-20s \n",$1,$2,$3}'
echo '#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#'
}
# 检查内存大小
check_mem(){
echo '#=====================================================#'
ansible -i hosts.txt all -m shell -a "free -h | grep -w 'Mem' | awk '{print \$1,\$2}'"| awk ' {print $1,$2;}' | tr '|' ' ' | awk '{if(NR%2!=0)ORS=" ";else ORS="\n"}1' | awk '{printf "%-20s %-20s %-20s \n",$1,$2,$3}'
echo '#=====================================================#'
}
# 检查服务器数据盘挂载在/opt分区大小
check_data_disk(){
echo "检查 /opt分区大小,不存在则输出为空"
echo '######################################################'
ansible -i hosts.txt all -m shell -a "lsblk | grep -w '/opt' | awk '{print \$1,\$4}'" | awk ' {print $1,$2;}' | tr '|' ' ' | awk '{if(NR%2!=0)ORS=" ";else ORS="\n"}1' | awk '{printf "%-20s %-20s %-20s \n",$1,$2,$3}'
echo '######################################################'
}
通过awk操作获得的几行数据是不定的,需要将获得的几行数据存到一个数组中,又不想使用循环
eval $(ps -ef | grep tomcat | awk '{print $9}'|sed '/home/!d'|sed 's/^.*home\///g'|sed 's/\/.*$//g' | awk '{printf "line["NR"]=%s\n",$1}')
需要注意的地方:
- 在awk中对变量赋值,如果不使用eval $() 是不能在shell中使用awk中变量的
- awk中有NR,NF这样内置变量,可以利用它生成一个数组
网友评论