diff options
-rw-r--r-- | cron/cron.daily/mysql-status.sh | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/cron/cron.daily/mysql-status.sh b/cron/cron.daily/mysql-status.sh new file mode 100644 index 0000000..67d02ce --- /dev/null +++ b/cron/cron.daily/mysql-status.sh @@ -0,0 +1,21 @@ +#!/bin/sh +OUTPUT="nc -N 127.0.0.2 2424" +maximumSecondsBehind=20 +/opt/mysql/bin/mysql -u repl-status -p'$dbmonpass' -e 'SHOW REPLICA STATUS \G' > /tmp/replicationstatus.txt + +slaveRunning="$(cat /tmp/replicationstatus.txt | grep "Replica_IO_Running: Yes" | wc -l)" +slaveSQLRunning="$(cat /tmp/replicationstatus.txt | grep "Replica_SQL_Running: Yes" | wc -l)" +secondsBehind="$(cat /tmp/replicationstatus.txt | grep "Seconds_Behind_Source" | tr -dc '0-9')" + +echo $slaveRunning | $OUTPUT +echo $slaveSQLRunning | $OUTPUT +echo $secondsBehind | $OUTPUT + +if [[ $slaveRunning != 1 || $slaveSQLRunning != 1 || $secondsBehind -gt $maximumSecondsBehind ]]; then + echo + echo "Replikacja wydaje się być popieprzona. Sending logs via email. @cranberry" | $OUTPUT + /usr/bin/mail -s "[MySQL Replication Monitor] Issue on $(hostname) at $(date)" system@lysergic.dev < /tmp/replicationstatus.txt +else + echo + echo "Replikacja wydaje się być zdrowa." | $OUTPUT +fi |