Jenkins 서버 종료 및 시작에 대한 경고를 설정하고 기록하는 방법

Jenkins 서버 종료 및 시작에 대한 경고를 설정하고 기록하는 방법

모든 Jenkins 서버를 고려하고 연결을 확인하는 Jenkins 파이프라인 작업이 있습니다(몇 분마다 실행됨).

.ksh 파일:

#!/bin/ksh
JENKINS_URL=$1

    curl  --connect-timeout 10 "$JENKINS_URL" >/dev/null
    status=`echo $?`
     if [ "$status" == "7" ]; then
        export SUBJECT="Connection refused or can not connect to URL $JENKINS_URL"
        echo "$SUBJECT"|/usr/sbin/sendmail -t [email protected]

    else
        echo "successfully connected $JENKINS_URL"
     fi

    exit 0

서버가 다운될 때마다(서버의 이름과 타임스탬프가 포함되어야 함) 기록하는 또 다른 코드를 파일에 추가하고, 서버가 다시 작동하면 이에 대한 이메일 알림을 보내고 해당 내용도 아카이브. 추가 알림을 받고 싶지 않습니다. 알림이 꺼질 때(파일 및 메일) 한 번, 다시 시작할 때 한 번만 받고 싶습니다. 이것을 구현하는 방법을 아시나요?

답변1

#!/bin/ksh
JENKINS_URL=$1
# extract just the host and potental port number from the url
HOSTP=${JENKINS_URL#*:} ; HOSTP=${HOSTP%%/*}

# Create down directory if it doesn't exist
[ -d down ] || mkdir -p down

curl  --connect-timeout 10 "$JENKINS_URL" >/dev/null
status=$?
if [ "$status" == "7" ]; then
    [ -e "down/$HOSTP" ] && exit 0
    { echo -n "$HOSTP   down    " ; date } >> times
    touch "down/$HOSTP"
    SUBJECT="Connection refused or can not connect to URL $JENKINS_URL"
    echo "$SUBJECT"|/usr/sbin/sendmail -t [email protected]
else
    echo "successfully connected $JENKINS_URL"
    [ -e "down/$HOSTP" ] || exit 0
    rm "down/$HOSTP"
    { echo -n "$HOSTP    up     " ; date } >> times
fi

exit 0

관련 정보