#!/bin/bash function log_error() { echo `date '+%Y-%m-%d %H:%M:%S'` ERROR: $1 >&2; } function log() { echo `date '+%Y-%m-%d %H:%M:%S'` INFO: $1; } MAIL=$(tee) SERVER_LIST="['10.10.110.15', '10.10.110.16']" PASSWORD="p455w0rD" SERVERS=($(python -c "from random import shuffle; server=${SERVER_LIST}; shuffle(server); print(' '.join(server))")) for SERVER in ${SERVERS[@]}; do log "Trying to report spam to ${SERVER}" RETURN=$(/usr/bin/curl -s --connect-timeout 1 -H "Password: ${PASSWORD}" --data-binary --url "http://${SERVER}:11334/learnspam" -d "${MAIL}") STATUS=$? if [ $STATUS -eq 0 ]; then log "Spam reported to ${SERVER}: ${RETURN}" exit 0 else if [ $STATUS -eq 28 ]; then log_error "Reporting SPAM to ${SERVER} failed: Connection timed out." else log_error "Reporting SPAM to ${SERVER} failed: CURL exit status ${STATUS}" fi fi done log_error "Reporting SPAM failed ${SERVERS[@]}" exit 1