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

おすすめ記事