셸 스 크 립 트 는 회사 프로젝트 배치 전달 환경 예비 검사 의 방향 을 실현 합 니 다.

대형 프로젝트 환경 에서 스 크 립 트 를 미리 검사 하고 자신의 실제 상황 에 따라 스 크 립 트 의 변 수 를 수정 하여 여러분 에 게 아 이 디 어 를 드 립 니 다.전재 출처 를 밝 혀 주세요~

#!/usr/bin/env bash
root=$(
  cd $(dirname $0)
  pwd
)

source "$root"/dragonrc

CPU=$(echo "`cat /proc/cpuinfo | grep "physical id" | uniq | wc -l`H")
MEM=$(echo "$((`cat /proc/meminfo | grep MemTotal |awk '{print $2}'` / 1000000))G")
TIME=$(date)

rpm -q ansible &> /dev/null

if [ $? -ne 0 ];then
    sh ${root}/scripts/install_ansible.sh &> /dev/null
fi

HINT(){
    read -p "      :"
}

COPY_KEY(){
    echo
    echo
sh ${root}/scripts/copy-key.sh
    echo
    echo

}

CK_UMASK(){
UMASK_NUM=$(ansible dragon -m shell -a "umask"|grep 0022|wc -l)
ALL_HOSTS=$(echo "${ALL_NODES}"|awk -F"," '{for(i=1;i<=NF;i++) print $i}'|wc -l)
    echo
    echo -e "\033[5;32;31m      umask ,     。。。\033[0m"
    echo
    if [ ${UMASK_NUM} -ne ${ALL_HOSTS} ];then
        echo -e "\033[1;32;31m     umask  022,         !\033[0m"
        sleep 3
            ansible dragon -m shell -a "sed -i 's/^.*umask.*/umask 022/g' /etc/profile"
            ansible dragon -m shell -a "source /etc/profile"
            ansible dragon -m shell -a "sed -i 's/^.*umask.*/umask 022/g' /etc/bashrc"
            ansible dragon -m shell -a "source /etc/bashrc"
        echo -e "\033[1;32;31m-------------------------------      umask -------------------------------\033[0m"
            ansible dragon -m shell -a "umask"
        echo -e "\033[1;32;31m  :         0022,         ,     umask !\033[0m"
    else
clear
        echo -e "\033[1;32;31m    umask    022\033[0m"
echo
    fi
}
CK_NETWORK_NAME(){
    echo
    echo -e "\033[1;32;31m-------------------------------           -------------------------------\033[0m"
    IFS=',' read -r -a nodes <<<"${ALL_NODES}"
    for p in "${nodes[@]}"; do
    echo
    ssh -q -o 'StrictHostKeyChecking no' -o 'UserKnownHostsFile /dev/null' -T $p ip addr |grep $p | awk '{print $2,$7}'
    echo
    done
    echo -e "\033[1;32;35m  :         dragonrc  ~\033[0m"
    echo -e "\033[1;32;31m-------------------------------            -------------------------------\033[0m"
    echo
}
CK_HOST_NAME(){
    echo
    echo -e "\033[1;32;31m-------------------------------         -------------------------------\033[0m"
    ansible dragon -m shell -a "hostname"
            echo -e "\033[1;32;31m  :     ,            ~\033[0m"
    echo -e "\033[1;32;31m-------------------------------          -------------------------------\033[0m"
    echo
}
CK_HOSTS(){
    echo
    echo -e "\033[1;32;31m-------------------------------      Hosts  -------------------------------\033[0m"
    sh ${root}/scripts/hostname.sh
    echo -e "\033[1;32;31m-------------------------------       Hosts  -------------------------------\033[0m"
    echo
}
CK_TIME(){
    echo
    echo -e "\033[1;32;31m----------------------------------        ----------------------------------\033[0m"
    ansible dragon -m shell -a "date"
    echo -e "\033[1;32;35m  :   1~2      ,         ntpd    ~\033[0m"
    echo -e "\033[1;32;31m----------------------------------         ----------------------------------\033[0m"
    echo
}
CK_DISK(){
    echo
    echo -e "\033[1;32;31m----------------------------------          ----------------------------------\033[0m"
    ansible dragon -m shell -a "df -h"
    echo -e "\033[1;32;31m----------------------------------           ----------------------------------\033[0m"
    echo
}
CK_SYSTEM(){
    echo
    echo -e "\033[1;32;31m----------------------------------            ----------------------------------\033[0m"
    ansible dragon -m shell -a "cat /etc/redhat-release"
    echo -e "\033[1;32;31m----------------------------------             ----------------------------------\033[0m"
    echo
}
CK_FIREWALLD(){
    echo
    echo -e "\033[1;32;31m----------------------------------             ----------------------------------\033[0m"
    ansible dragon -m shell -a "firewall-cmd --state"
    echo -e "\033[1;32;35m  :          Running,    ,all_sh.sh                ~\033[0m"
    echo -e "\033[1;32;31m----------------------------------              ----------------------------------\033[0m"
    echo
}
CK_SELINUX(){
    echo
    echo -e "\033[1;32;31m----------------------------------      SELINUX    ----------------------------------\033[0m"
    ansible dragon -m shell -a "sestatus"
    echo -e "\033[1;32;35m  :       enabled,    ,all_sh.sh                ~\033[0m"
    echo -e "\033[1;32;31m----------------------------------       SELINUX    ----------------------------------\033[0m"
    echo
}
while true
do
    clear
    echo "-------------------------------------------------------"
    echo "|                           |"
    echo "|       XXXXXXXXXXX               |"
    echo "|                           |"
    echo "-------------------------------------------------------"
    echo "   *****           :${CPU} ${MEM}  ***** "
    echo "-------------------------------------------------------"
    echo "|        1.   SSH              |"
    echo "|        2.        umask        |"
    echo "|        3.                   |"
    echo "|        4.                   |"
    echo "|        5.      hosts          |"
    echo "|        6.                   |"
    echo "|        7.                   |"
    echo "|        8.                   |"
    echo "|        9.                   |"
    echo "|       10.      SELINUX         |"
    echo "-------------------------------------------------------"
    echo
    echo "  //     :${TIME} //"
    echo
    read -p "    [1-10/q  ]  :" THING
case $THING in
       1)
       COPY_KEY
       HINT
       ;;
       2)
       CK_UMASK
       HINT
       ;;
       3)
       CK_NETWORK_NAME
       HINT
       ;;
       4)
       CK_HOST_NAME
       HINT
       ;;
       5)
       CK_HOSTS
       HINT
       ;;
       6)
       CK_TIME
       HINT
       ;;
       7)
       CK_DISK
       HINT
       ;;
       8)
       CK_SYSTEM
       HINT
       ;;
       9)
       CK_FIREWALLD
       HINT
       ;;
       10)
       CK_SELINUX
       HINT
       ;;
       q)
       exit
       ;;
       *)
       read -p "    [1-10/q  ],      :"
       ;;
       esac
done
여기 서 셸 스 크 립 트 가 회사 프로젝트 배 치 를 실현 하 는 환경 예비 검 사 를 실현 하 는 사고 에 관 한 글 은 여기까지 소개 되 었 습 니 다.더 많은 셸 스 크 립 트 배치 전달 환경 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 우 리 를 많이 지 켜 주시 기 바 랍 니 다!

좋은 웹페이지 즐겨찾기