#!/bin/env bash
#os_sysctl.sh
#sysctl 内核参数配置是否为标准配置
#0为正常,1为异常
#fs.aio-max-nr = 4194304
#fs.file-max = 6815744
#kernel.shmall = 167772160
#kernel.shmmax = 687194767360
#kernel.shmmni = 4096
#kernel.sem = 250 60000 100 240
#net.core.somaxconn  = 32768
#net.ipv4.tcp_tw_reuse = 1
#net.ipv4.tcp_syncookies = 0
#vm.overcommit_memory = 1
declare -A dic
dic=(["fs.aio-max-nr"]="4194304" 
     ["fs.file-max"]="6815744" 
     ["kernel.shmall"]="167772160" 
     ["kernel.shmmax"]="687194767360" 
     ["kernel.shmmni"]="4096" 
     ["kernel.sem"]="250 60000 100 240" 
     ["net.core.somaxconn"]="32768" 
     ["net.ipv4.tcp_tw_reuse"]="1" 
     ["net.ipv4.tcp_syncookies"]="0" 
     ["vm.overcommit_memory"]="1" 
    )

#便利和判断赋值
for key in $(echo ${!dic[*]})
do
    sysctl_v=$(cat /etc/sysctl.conf| grep "^${key}" |awk -F= '{gsub("^ ","",$2);printf "%s",$2}')
    if [ "${sysctl_v}" != "${dic[$key]}" ] 
    then
        echo "kv:$key=${sysctl_v}"
        echo "kv:1"
        exit 0
    fi
done

echo "kv:sysctl内核参数配置"
echo "kv:0"
