From 04c26a9df4527246c89609fabdd8126540308974 Mon Sep 17 00:00:00 2001 From: Ama Date: Wed, 24 Sep 2025 16:38:12 +0200 Subject: [PATCH] little scripts --- install-rdl-programs.sh | 1 + programs/rdl_prometheus | 2 ++ programs/rdl_restart_network | 11 +++++++++ programs/rdl_ssh_touch | 44 ++++++++++++++++++++++++++++++++++++ 4 files changed, 58 insertions(+) create mode 100644 install-rdl-programs.sh create mode 100755 programs/rdl_restart_network create mode 100644 programs/rdl_ssh_touch diff --git a/install-rdl-programs.sh b/install-rdl-programs.sh new file mode 100644 index 0000000..d33f247 --- /dev/null +++ b/install-rdl-programs.sh @@ -0,0 +1 @@ +install programs/* /usr/local/bin diff --git a/programs/rdl_prometheus b/programs/rdl_prometheus index f46b5d7..3ec1ca2 100755 --- a/programs/rdl_prometheus +++ b/programs/rdl_prometheus @@ -64,3 +64,5 @@ allowed_characters='^[a-z_]+$' mv --force /tmp/"$NAME".prom.$$ "$PROM_DIR"/"$NAME".prom chown prometheus:prometheus "$PROM_DIR"/"$NAME".prom + +exit $RETURN diff --git a/programs/rdl_restart_network b/programs/rdl_restart_network new file mode 100755 index 0000000..963191a --- /dev/null +++ b/programs/rdl_restart_network @@ -0,0 +1,11 @@ +#!/bin/bash + +for N in {1..3}; do sudo ip link set dev eno$N down; done + +ip route delete default + +sleep 10 + +for N in {1..3}; do sudo ip link set dev eno$N up; done + +ip route add default via 10.23.1.1 dev eno3 diff --git a/programs/rdl_ssh_touch b/programs/rdl_ssh_touch new file mode 100644 index 0000000..e57471f --- /dev/null +++ b/programs/rdl_ssh_touch @@ -0,0 +1,44 @@ +#!/bin/bash +# rdl_ssh_touch -- try and fix connection + +login=$1 +file=$2 + +RDL_PROM_LINES+=" +job rdl_ssh_touch +login $login +file $file +" + +try_connection() { + timeout 20 ssh "$login" touch "$file" +} + +should_reset() { + last_run=$(< /var/rdl_ssh_touch/"$login") + + if ! test "$last_run" ; then + echo Can\'t get a last timestamp in echo /var/rdl_ssh_touch/"$login" + mkdir -v /var/rdl_ssh_touch + return 0 + else + # (time now) - (last time) > 6 hours? + if test $(( $(date +%s) - "$last_run" )) -gt $(( 60 * 60 * 6 )); then + return 0 + else + echo Already resetted at $(date -d @"$last_run" +"%F %T") + return 1 + fi + fi +} + +if ! rdl_prometheus try_connection; then + echo Can\'t ssh "$login" touch "$file". + if should_reset; then + echo Resetting... + date +%s > /var/rdl_ssh_touch/"$login" \ + && rdl_prometheus rdl_restart_network \ + && echo Ok + fi +fi +