From 8dbd07bb12c71bb4000f176638e585256980cada Mon Sep 17 00:00:00 2001 From: Dominika Liberda Date: Fri, 21 May 2021 13:47:54 +0200 Subject: [PATCH] * fixes for running on FreeBSD w/ small process quota --- code/ping.sh | 4 ++-- code/req.sh | 6 +++--- config.sh | 6 +----- workers/{every_1min => checker}/control | 0 workers/checker/worker.sh | 27 +++++++++++++++++++++++++ workers/every_1min/worker.sh | 3 --- workers/every_30min/control | 0 workers/every_30min/worker.sh | 3 --- workers/every_5min/control | 0 workers/every_5min/worker.sh | 3 --- workers/notify/control | 0 workers/notify/worker.sh | 2 -- 12 files changed, 33 insertions(+), 21 deletions(-) rename workers/{every_1min => checker}/control (100%) create mode 100755 workers/checker/worker.sh delete mode 100755 workers/every_1min/worker.sh delete mode 100644 workers/every_30min/control delete mode 100755 workers/every_30min/worker.sh delete mode 100644 workers/every_5min/control delete mode 100755 workers/every_5min/worker.sh delete mode 100644 workers/notify/control delete mode 100755 workers/notify/worker.sh diff --git a/code/ping.sh b/code/ping.sh index 60e3052..61784d6 100755 --- a/code/ping.sh +++ b/code/ping.sh @@ -8,12 +8,12 @@ for i in $json; do label="$(awk -F� '{print $1}' <<< "$i")" label_sha="$(shasum <<< "$label" | cut -c 1-16)" addr="$(awk -F� '{print $2}' <<< "$i")" - res="$(ping -c 1 -W 1.5 $addr > >(grep icmp_seq | sed -E 's/.*icmp_seq=1//'))" + res="$(ping -c 1 $addr > >(grep icmp_seq | sed -E 's/.*icmp_seq=.//'))" status=$? if [[ "$status" == 0 ]]; then if [[ "$res" == *"time"* ]]; then - res_parsed="$(grep -Poh "time=.*?ms" <<< "$res" | sed -E 's/time=//g;s/ms//g' | tr -d ' ')" + res_parsed="$(grep -Eoh "time=.*ms" <<< "$res" | sed -E 's/time=//g;s/ms//g' | tr -d ' ')" else res_parsed='#' fi diff --git a/code/req.sh b/code/req.sh index 9bc8508..fe786f3 100755 --- a/code/req.sh +++ b/code/req.sh @@ -16,13 +16,13 @@ for i in $json; do [[ "$method" == '' ]] && method="GET" if [[ "$match" == "body" ]]; then - res="$(curl -A "${cfg[useragent]}" -s -X "$method" "$url" --data "$data" | grep -P "$string")" + res="$(curl -A "${cfg[useragent]}" -s -X "$method" "$url" --data "$data" | grep -E "$string")" status=$? elif [[ "$match" == "head" ]]; then - res="$(curl -A "${cfg[useragent]}" -sD - -o /dev/null -X "$method" "$url" --data "$data" | grep -P "$string")" + res="$(curl -A "${cfg[useragent]}" -sD - -o /dev/null -X "$method" "$url" --data "$data" | grep -E "$string")" status=$? elif [[ "$match" == "status" ]]; then - res="$(curl -A "${cfg[useragent]}" -sD - -o /dev/null -X "$method" "$url" --data "$data" | grep -P "HTTP.*? $string")" + res="$(curl -A "${cfg[useragent]}" -sD - -o /dev/null -X "$method" "$url" --data "$data" | grep -E "HTTP.*? $string")" status=$? fi diff --git a/config.sh b/config.sh index c9c1a89..6da5b8d 100644 --- a/config.sh +++ b/config.sh @@ -2,9 +2,5 @@ ## your application-specific config goes here! cfg[useragent]="dtr/1.0 (https://git.sakamoto.pl/domi/dtr)" -cfg[telegram_bot_token]="" -worker_add every_1min 60 -worker_add every_5min 300 -worker_add every_30min 1800 -worker_add notify 60 +worker_add checker 60 diff --git a/workers/every_1min/control b/workers/checker/control similarity index 100% rename from workers/every_1min/control rename to workers/checker/control diff --git a/workers/checker/worker.sh b/workers/checker/worker.sh new file mode 100755 index 0000000..5ba582f --- /dev/null +++ b/workers/checker/worker.sh @@ -0,0 +1,27 @@ +#!/bin/bash +if [[ "$counter5" == '' ]]; then + counter5=5 +else + counter5=$((counter5+1)) +fi +if [[ "$counter30" == '' ]]; then + counter30=30 +else + counter30=$((counter30+1)) +fi + +source "${cfg[namespace]}/code/ping.sh" every_1min +source "${cfg[namespace]}/code/req.sh" every_1min + +if [[ $counter30 == 30 ]]; then + source "${cfg[namespace]}/code/ping.sh" every_30min + source "${cfg[namespace]}/code/req.sh" every_30min + counter30=0 +fi +if [[ $counter5 == 5 ]]; then + source "${cfg[namespace]}/code/ping.sh" every_5min + source "${cfg[namespace]}/code/req.sh" every_5min + counter5=0 +fi + +source "${cfg[namespace]}/code/notify.sh" diff --git a/workers/every_1min/worker.sh b/workers/every_1min/worker.sh deleted file mode 100755 index 9d04f82..0000000 --- a/workers/every_1min/worker.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash -source "${cfg[namespace]}/code/ping.sh" every_1min -source "${cfg[namespace]}/code/req.sh" every_1min diff --git a/workers/every_30min/control b/workers/every_30min/control deleted file mode 100644 index e69de29..0000000 diff --git a/workers/every_30min/worker.sh b/workers/every_30min/worker.sh deleted file mode 100755 index 6ca2238..0000000 --- a/workers/every_30min/worker.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash -source "${cfg[namespace]}/code/ping.sh" every_30min -source "${cfg[namespace]}/code/req.sh" every_30min diff --git a/workers/every_5min/control b/workers/every_5min/control deleted file mode 100644 index e69de29..0000000 diff --git a/workers/every_5min/worker.sh b/workers/every_5min/worker.sh deleted file mode 100755 index f397fb4..0000000 --- a/workers/every_5min/worker.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash -source "${cfg[namespace]}/code/ping.sh" every_5min -source "${cfg[namespace]}/code/req.sh" every_5min diff --git a/workers/notify/control b/workers/notify/control deleted file mode 100644 index e69de29..0000000 diff --git a/workers/notify/worker.sh b/workers/notify/worker.sh deleted file mode 100755 index 88db57e..0000000 --- a/workers/notify/worker.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/bash -source "${cfg[namespace]}/code/notify.sh"