美文网首页
【ansible】ansible shell 服务器 cpu、m

【ansible】ansible shell 服务器 cpu、m

作者: Bogon | 来源:发表于2023-01-04 23:35 被阅读0次
    # 检查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}')
    
    

    需要注意的地方:

    1. 在awk中对变量赋值,如果不使用eval $() 是不能在shell中使用awk中变量的
    2. awk中有NR,NF这样内置变量,可以利用它生成一个数组

    相关文章

      网友评论

          本文标题:【ansible】ansible shell 服务器 cpu、m

          本文链接:https://www.haomeiwen.com/subject/dpjaortx.html