Add test condition when there are no errors
Also log unjoinable instances
This commit is contained in:
parent
90f231e59f
commit
d5c632e74f
1 changed files with 60 additions and 44 deletions
104
tootpaste.sh
104
tootpaste.sh
|
@ -40,52 +40,68 @@ accounts_cull() {
|
||||||
|
|
||||||
# Remove instances that have an expired certificate from more than
|
# Remove instances that have an expired certificate from more than
|
||||||
# TLS_EXPIRED_MAX_SEC
|
# TLS_EXPIRED_MAX_SEC
|
||||||
grep 'certificate has expired' "$CULL_LOG" \
|
if grep -q 'certificate has expired' "$CULL_LOG"; then
|
||||||
| awk '{print $NF}' \
|
grep 'certificate has expired' "$CULL_LOG" \
|
||||||
| cut -d'/' -f3 \
|
| awk '{print $NF}' \
|
||||||
| sort -u \
|
| cut -d'/' -f3 \
|
||||||
> "$TLS_EXPIRED_LOG"
|
| sort -u \
|
||||||
|
> "$TLS_EXPIRED_LOG"
|
||||||
|
|
||||||
while read -r instance; do
|
while read -r instance; do
|
||||||
TLS_EXPIRED_TS=$(
|
TLS_EXPIRED_TS=$(
|
||||||
date -d "$(
|
date -d "$(
|
||||||
echo Q \
|
echo Q \
|
||||||
| openssl s_client \
|
| openssl s_client \
|
||||||
-servername "$instance" \
|
-servername "$instance" \
|
||||||
-connect "${instance}":443 \
|
-connect "${instance}":443 \
|
||||||
2>/dev/null \
|
2>/dev/null \
|
||||||
| openssl x509 -noout -dates \
|
| openssl x509 -noout -dates \
|
||||||
| grep 'notAfter' \
|
| grep 'notAfter' \
|
||||||
| cut -d'=' -f2
|
| cut -d'=' -f2
|
||||||
)" +%s
|
)" +%s
|
||||||
)
|
)
|
||||||
DATE_DIFF=$(($(date +%s) - TLS_EXPIRED_TS))
|
DATE_DIFF=$(($(date +%s) - TLS_EXPIRED_TS))
|
||||||
if [[ $DATE_DIFF -gt $TLS_EXPIRED_MAX_SEC ]]; then
|
if [[ $DATE_DIFF -gt $TLS_EXPIRED_MAX_SEC ]]; then
|
||||||
echo "${instance} has a certificate expired for more than TLS_EXPIRED_MAX_SEC, purging..."
|
echo "${instance} has a certificate expired for more than TLS_EXPIRED_MAX_SEC, purging..."
|
||||||
$DRY_RUN \
|
$DRY_RUN \
|
||||||
&& $TOOTCTL domains purge \
|
&& $TOOTCTL domains purge \
|
||||||
--concurrency "$DB_POOL" \
|
--concurrency "$DB_POOL" \
|
||||||
--dry-run \
|
--dry-run \
|
||||||
"$instance"
|
"$instance"
|
||||||
$DRY_RUN \
|
$DRY_RUN \
|
||||||
|| $TOOTCTL domains purge \
|
|| $TOOTCTL domains purge \
|
||||||
--concurrency "$DB_POOL" \
|
--concurrency "$DB_POOL" \
|
||||||
"$instance"
|
"$instance"
|
||||||
fi
|
fi
|
||||||
done < "$TLS_EXPIRED_LOG"
|
done < "$TLS_EXPIRED_LOG"
|
||||||
|
fi
|
||||||
|
|
||||||
# Log other instances errors, then if they were already in the log, purge
|
# Log other instances errors, then if they were already in the log, purge them
|
||||||
# them
|
if grep -q 'https' "$CULL_LOG"; then
|
||||||
grep \
|
grep \
|
||||||
-e 'certificate verify failed' \
|
-e 'certificate verify failed' \
|
||||||
-e 'timed out' \
|
-e 'timed out' \
|
||||||
-e 'sslv3 alert handshake failure' \
|
-e 'sslv3 alert handshake failure' \
|
||||||
-e 'TooManyRedirectsError' \
|
-e 'TooManyRedirectsError' \
|
||||||
"$CULL_LOG" \
|
-e 'EndlessRedirectError' \
|
||||||
| awk '{print $NF}' \
|
-e 'HostValidationError' \
|
||||||
| cut -d'/' -f3 \
|
"$CULL_LOG" \
|
||||||
| sort -u \
|
| awk '{print $NF}' \
|
||||||
> "$OTHER_ERRORS_LOG"
|
| cut -d'/' -f3 \
|
||||||
|
| sort -u \
|
||||||
|
> "$OTHER_ERRORS_LOG"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Log unjoinable instances, then if they were already in the log, purge them
|
||||||
|
if grep -q 'not available during the check:' "$CULL_LOG"; then
|
||||||
|
grep \
|
||||||
|
-A 9999 \
|
||||||
|
'not available during the check:' \
|
||||||
|
"$CULL_LOG" \
|
||||||
|
| tail -n +2 \
|
||||||
|
| sed -E 's/\s+//' \
|
||||||
|
> "$OTHER_ERRORS_LOG"
|
||||||
|
fi
|
||||||
|
|
||||||
test -f $PREV_ERRORS_LOG || touch $PREV_ERRORS_LOG
|
test -f $PREV_ERRORS_LOG || touch $PREV_ERRORS_LOG
|
||||||
while read -r instance; do
|
while read -r instance; do
|
||||||
|
|
Loading…
Reference in a new issue