반응형
※ 해당 포스팅은 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
반응형