Programming/Bash Shell Script

[Bash Shell Script] 쉘 스크립트 도메인 인증서 만료 날짜 불러오기(bash shell domain certificate)

Nirsa 2021. 12. 21. 18:39
반응형
※ 해당 포스팅은 https://nirsa.tistory.com/318?category=861480 와 연계하여 사용 합니다. 도메인의 인증서 만료 날짜를 자동으로 가져와 license 파일을 업데이트하기 위하여 사용 합니다. 그 외 사용 목적으로 사용할 예정인 경우 스크립트 내용을 잘 확인 바랍니다.
쉘 스크립트 도메인 인증서 갱신 날짜 불러오기(bash shell domain certificate)

이전 포스팅에 추가하여 쉘스크립트 도메인 인증서 갱신 날짜를 불러와 자동으로 라이센스 파일에 내용을 변경 해주는 스크립트 입니다. "YOUR_LICENSE_FILE_PATH" , "YOUR_DOMAIN_URL" 부분은 본인의 환경에 맞게 변경 해주어야 합니다.

기타 자세한 내용은 추후 추가 예정 입니다.

#!/bin/bash
MONTHLY_STRING_LIST=("Jan" "Feb" "Mar" "Apr" "May" "Jun" "Jul" "Aug" "Sep" "Oct" "Nov" "Dec")
MONTHLY_INT_LIST=("1" "2" "3" "4" "5" "6" "7" "8" "9" "10" "11" "12")

MONTHLY_STRING_EXPR=`expr ${#MONTHLY_STRING_LIST[@]} - 1`
MONTHLY_INT_EXPR=`expr ${#MONTHLY_INT_LIST[@]} - 1`

LICENSE_DATE=`echo | openssl s_client -connect 172.16.1.2:443 2>/dev/null | openssl x509 -noout -dates | grep notAfter`
LICENSE_DATE_REPLACE=${LICENSE_DATE/notAfter=/}

YEAR_DATE=`echo $LICENSE_DATE_REPLACE | awk '{print $4}'`
DAY_DATE=`echo $LICENSE_DATE_REPLACE | awk '{print $2}'`

SSL_BEFORE=`cat /root/license/license | grep SSL`

declare -A map_monthly

function monthly_conv() {
    count=$3
    map_monthly[$1]=$2
    if [[ $count -eq $MONTHLY_STRING_EXPR ]]; then
        for _string in "${!map_monthly[@]}"
        do
            if [[ "$LICENSE_DATE_REPLACE" =~ "$_string" ]]; then
                if [[ "${map_monthly[$_string]}" -le "9" ]]; then
                    result=`echo "$YEAR_DATE-0${map_monthly[$_string]}-$DAY_DATE SSL인증서"`
                    sed -i 's/'"$SSL_BEFORE"'/'"$result"'/' /root/license/license
                else
                    result=`echo "$YEAR_DATE-${map_monthly[$_string]}-$DAY_DATE SSL인증서"`
                    sed -i 's/'"$SSL_BEFORE"'/'"$result"'/' /root/license/license
                fi
            fi
        done
    fi
}

for ((i=0;i<=${#MONTHLY_STRING_LIST[@]}&&i<=${#MONTHLY_INT_LIST[@]};i++))
do
    monthly_conv ${MONTHLY_STRING_LIST[$i]} ${MONTHLY_INT_LIST[$i]} $i
done
반응형