diff options
author | Silvio Rhatto <rhatto@riseup.net> | 2014-03-15 15:01:34 -0300 |
---|---|---|
committer | Silvio Rhatto <rhatto@riseup.net> | 2014-03-15 15:01:34 -0300 |
commit | 939a44d6d08a560ba966be96b17d9038eac77f34 (patch) | |
tree | 1683cd5490a66a9cb90a8781b867e663c5a22e02 /mod/lorea-status/bin | |
parent | 991a965fcdbbcdd5ad754949a8b2bebc97b807b7 (diff) | |
parent | 4bd60b4f3f541c7af734ed40043e70c888450691 (diff) | |
download | elgg-939a44d6d08a560ba966be96b17d9038eac77f34.tar.gz elgg-939a44d6d08a560ba966be96b17d9038eac77f34.tar.bz2 |
Merge commit '4bd60b4f3f541c7af734ed40043e70c888450691' as 'mod/lorea-status'
Diffstat (limited to 'mod/lorea-status/bin')
-rwxr-xr-x | mod/lorea-status/bin/lorea_refresh_status | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/mod/lorea-status/bin/lorea_refresh_status b/mod/lorea-status/bin/lorea_refresh_status new file mode 100755 index 000000000..bce60dc30 --- /dev/null +++ b/mod/lorea-status/bin/lorea_refresh_status @@ -0,0 +1,43 @@ +#!/bin/zsh +# +## Check if hosts are up and running + +typeset -A SEEDS +typeset -a STATUS + +if [ ! -f /etc/default/lorea-status ] ; then + echo "Missing /etc/default/lorea-status configuration file. Aborted." + exit 1 +fi +source /etc/default/lorea-status + +for s in ${(k)SEEDS} ; do +# echo "$s => ${SEEDS[$s]}" + ping -c 1 -W 3 ${SEEDS[$s]} &>/dev/null + if (( $? )) ; then + STATUS+="{\"host\":\"$s\",\"ping\":0,\"running\":-1}" + else + # Host is up, check service + echo -n "ping... " +# pong=$(/usr/bin/wget -q -T 3 -O- https://$s/.ping) +# wget does not support SNI? + pong=$(/usr/bin/wget --no-check-certificate -q -T 3 -O- https://$s/.ping) + echo $pong + if [[ "pong $s" == "$pong" ]] ; then + STATUS+="{\"host\":\"$s\",\"ping\":1,\"running\":1}" + else + STATUS+="{\"host\":\"$s\",\"ping\":1,\"running\":0}" + fi + fi +done +# join array elements with a comma +OLD_IFS=$IFS +IFS=, +STATUS="{\"seeds\":${#SEEDS},\"list\":[${STATUS}]}" +IFS=$OLD_IFS + +setopt CLOBBER +pushd /var/www/status.lorea.org/pub +echo "$STATUS" > status.json.new +mv status.json.new status.json +popd |