|
|
@ -64,11 +64,14 @@ db_create() {
|
|
|
|
count INT NOT NULL DEFAULT 0,
|
|
|
|
count INT NOT NULL DEFAULT 0,
|
|
|
|
alert INT NOT NULL DEFAULT 0,
|
|
|
|
alert INT NOT NULL DEFAULT 0,
|
|
|
|
sent INT NOT NULL DEFAULT 0
|
|
|
|
sent INT NOT NULL DEFAULT 0
|
|
|
|
);"
|
|
|
|
);" || return 1
|
|
|
|
}
|
|
|
|
}
|
|
|
|
db_addsite() {
|
|
|
|
db_addsite() {
|
|
|
|
$SQL $DB "INSERT OR IGNORE INTO problem (site) VALUES('$1');"
|
|
|
|
$SQL $DB "INSERT OR IGNORE INTO problem (site) VALUES('$1');"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
db_rmsite() {
|
|
|
|
|
|
|
|
$SQL $DB "DELETE FROM problem WHERE site = '$1';"
|
|
|
|
|
|
|
|
}
|
|
|
|
db_inc() {
|
|
|
|
db_inc() {
|
|
|
|
$SQL $DB "UPDATE problem SET count = count + 1 WHERE site = '$1' AND count < $MAX_COUNT;"
|
|
|
|
$SQL $DB "UPDATE problem SET count = count + 1 WHERE site = '$1' AND count < $MAX_COUNT;"
|
|
|
|
if [ $($SQL $DB "SELECT count FROM problem WHERE site = '$1';") -ge $MAX_COUNT ]; then
|
|
|
|
if [ $($SQL $DB "SELECT count FROM problem WHERE site = '$1';") -ge $MAX_COUNT ]; then
|
|
|
@ -99,6 +102,10 @@ get_http_code() {
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
read_checklist() {
|
|
|
|
|
|
|
|
grep -v "^#\|^$" $CHKLIST | sort | uniq || return 1
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
print_time() {
|
|
|
|
print_time() {
|
|
|
|
date '+%Y-%m-%d %H:%M:%S'
|
|
|
|
date '+%Y-%m-%d %H:%M:%S'
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -110,6 +117,14 @@ FAILURE=false
|
|
|
|
# Create database if it doesn't exist
|
|
|
|
# Create database if it doesn't exist
|
|
|
|
if [ -f $DB ]; then
|
|
|
|
if [ -f $DB ]; then
|
|
|
|
printf '%s\n' "Database found: $DB"
|
|
|
|
printf '%s\n' "Database found: $DB"
|
|
|
|
|
|
|
|
# Remove stale entries in DB no longer found in check list
|
|
|
|
|
|
|
|
printf '%s\n' "Pruning database..."
|
|
|
|
|
|
|
|
for row in $($SQL $DB "SELECT site FROM problem;"); do
|
|
|
|
|
|
|
|
if ! read_checklist | grep $row >/dev/null 2>&1; then
|
|
|
|
|
|
|
|
db_rmsite "$row" && printf '%s\n' "Removing old record: $row"
|
|
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
done
|
|
|
|
|
|
|
|
printf '%s\n' "Database pruning complete."
|
|
|
|
else
|
|
|
|
else
|
|
|
|
printf '%s' "Database not found at '$DB'\nCreating DB ... "
|
|
|
|
printf '%s' "Database not found at '$DB'\nCreating DB ... "
|
|
|
|
if db_create; then
|
|
|
|
if db_create; then
|
|
|
@ -122,7 +137,7 @@ else
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
# Check HTTP codes
|
|
|
|
# Check HTTP codes
|
|
|
|
for site in $(grep -v "^#\|^$" $CHKLIST | sort | uniq); do
|
|
|
|
for site in $(read_checklist); do
|
|
|
|
db_addsite $site
|
|
|
|
db_addsite $site
|
|
|
|
respcode=$(get_http_code $site)
|
|
|
|
respcode=$(get_http_code $site)
|
|
|
|
case $respcode in
|
|
|
|
case $respcode in
|
|
|
@ -149,11 +164,6 @@ for site in $(grep -v "^#\|^$" $CHKLIST | sort | uniq); do
|
|
|
|
esac
|
|
|
|
esac
|
|
|
|
done || exit 2
|
|
|
|
done || exit 2
|
|
|
|
|
|
|
|
|
|
|
|
### # Send compiled message if any problems were found
|
|
|
|
|
|
|
|
### if [ "$FAILURE" = "true" ]; then
|
|
|
|
|
|
|
|
### send_message "$MSG" && printf '%s\n' "Problems found. Message sent via Telegram bot" >&2 || printf '%s\n' "Problems found. Message sending has failed"
|
|
|
|
|
|
|
|
### fi
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Find down sites without sent alerts
|
|
|
|
# Find down sites without sent alerts
|
|
|
|
unsent=$($SQL $DB "SELECT count(*) FROM problem WHERE alert = 1 AND sent = 0;")
|
|
|
|
unsent=$($SQL $DB "SELECT count(*) FROM problem WHERE alert = 1 AND sent = 0;")
|
|
|
|
cleared=$($SQL $DB "SELECT count(*) FROM problem WHERE alert = 0 AND sent = 1;")
|
|
|
|
cleared=$($SQL $DB "SELECT count(*) FROM problem WHERE alert = 0 AND sent = 1;")
|
|
|
|