#!/bin/env bash
#os_swap.sh
#检查swap是否为关闭状态
#0为关闭,1为未关闭

#输出检查对象
echo "SWAP关闭"
swp1=$(free -m | awk '{if($1~"Swap"){printf "%d", $2}}' 2>/dev/null)
swp2=$(awk -F= '{if($1~"vm.swappiness" && $2!=0){printf "%s", $2}}' /etc/sysctl.conf 2>/dev/null)
if [ ${swp1} -eq 0 -a -z "${swp2}" ]
then
    echo "0"
else 
    echo "1"
fi

#os_filewall.sh
#检查防火墙是否为关闭状态
#0为关闭,1为未关闭

#输出检查对象
echo "防火墙关闭"
fw1=$(systemctl status firewalld.service  2>/dev/null | awk '{if($1~"Active"){printf "%s%s", $2,$3}}')
fw2=$(awk -F= '{if($1=="SELINUX"){printf "%s", $2}}' /etc/selinux/config)
if [ "${fw1}" = "inactive(dead)" -a "${fw2:-disabled}" = "disabled" ]
then
    echo "0"
else
    echo "1"
fi


#os_sshpass_version.sh
#检查sshpass的版本号
#大于 1.0.6

#输出检查对象
echo "sshpass版本号"
sshpass_version=$(sshpass -V 2>/dev/null | awk '{if($1=="sshpass"){printf "%s", $2;exit}}')
echo "${sshpass_version:-0}"


#os_thp.sh
#检查透明大页为关闭状态
#等于 nerver

#输出检查对象
echo "透明大页关闭"
cat /sys/kernel/mm/transparent_hugepage/enabled | grep -o '\[.*\]'|tr "[]" " "


#os_cpu_performance.sh
#CPU 是否设置为 performance 模式
#物理机才有,不支持设置的平台不需要检查，例如长城
#等于 performance

#输出检查对象
echo "CPU性能模式"
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor 

#os_nvme_scheduler.sh
#arm 平台下，确认nvme存储介质的 I/O 调度器设置为 noop
#等于 noop

#输出检查对象
echo "NVME的IO调度器"
cat /sys/block/nvme0n1/queue/scheduler| grep -o '\[.*\]'|tr "[]" " "


#os_sysctl.sh
#sysctl 内核参数配置是否为标准配置
#0为正常,1为异常

#输出检查对象
echo "sysctl内核参数"


#os_user_ulimit.sh
#ulimit 配置是否为标准配置
#0为正常,1为异常

#输出检查对象
echo "sysctl内核参数"



#fs_fsused.sh
#文件系统使用率是否超过 50%
#大于 50

#输出检查对象
# echo "文件系统使用率"
df -P -m |awk -F'[ %]+' '{if($1~"^/" && $5>50){printf "%s\t%s\n",$6,$5}}'


#fs_deploy_mount.sh
#部署目录是否为独立挂载点
#0为正常,1为异常
#在tiup节点才检查

#输出检查对象
TidbHome=$(awk -F: -v un="tidb" '{if($1==un){print $6;exit}}' /etc/passwd 2>/dev/null)
clsName=$(tiup cluster list 2>/dev/null|awk '{if($3~"v" && $4~"tiup"){printf "%s\n",$1;exit}}') 
cat ${TidbHome}/.tiup/storage/cluster/clusters/${clsName}/meta.yaml  | grep deploy_dir
cat ${TidbHome}/.tiup/storage/cluster/clusters/${clsName}/meta.yaml  | grep data_dir





