src

sauce
got clone ssh://anon@src.dalliard.ch/src
log | files | refs

commit 2f76a01991bd9c357f7533cef89504e7e014712d
parent 8416a2b97d18c3bed00708b35082f4d23bebd1fd
author: nathanael <nathanael@dalliard.ch>
date:   Tue, 14 Oct 2025 22:41:31 +0000

s1: add hp

diffstat:
As1/cronjobs/user | 2++
As1/dotfiles/bin/hp | 58++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Ms1/makefile | 3+++
As1/scripts/cronjobs.sh | 4++++
Ms1/scripts/dotfiles.sh | 2+-
5 files changed, 68 insertions(+), 1 deletion(-)

diff --git a/s1/cronjobs/user b/s1/cronjobs/user @@ -0,0 +1,2 @@ +~/5 * * * * bin/hp https://s1.dalliard.ch s1.dalliard.ch log/s1.log +~/5 * * * * bin/hp https://s2.dalliard.ch s2.dalliard.ch log/s2.log diff --git a/s1/dotfiles/bin/hp b/s1/dotfiles/bin/hp @@ -0,0 +1,58 @@ +#!/bin/sh -e + +delay=3660 + +main() { + test -z "$2" && { echo "usage: ${0##*/} url string log"; exit 1; } + url="$1" + string="$2" + log="$3" + + if up + then was_up || say 'up' + else + was_down && has_been_for_long && say 'still down' + was_down || say 'down' + fi + +} + +up() { + ftp -MVo - "$url" 2>/dev/null| grep -Eq "$string" +} + +was_up() { + test -f "$log" && + tail -n 1 "$log" | + grep -qE 'up$' +} + +was_down() { + test -f "$log" && + tail -n 1 "$log" | + grep -qE 'down$' +} + +has_been_for_long() { + last=$(tail -n 1 "$log" | cut -f1 -d' ') + now=$(date +%s) + test "$((now - last))" -gt $delay +} + +say() { + test -f "$log" && + tail -n 1 "$log" >&2 + message "$1" >&2 + log "$1" +} + +log() { + message "$1" >> "$log" + exit 0 +} + +message() { + printf '%s %s is %s\n' "$(date '+%s %F %T' )" "$url" "$1" +} + +main "$@" diff --git a/s1/makefile b/s1/makefile @@ -18,5 +18,8 @@ sieve: doas sievec /etc/dovecot/sieve/default.sieve; \ fi +cron: host + @./scripts/cronjobs.sh + pkg: host @doas pkg_add -l packages >/dev/null diff --git a/s1/scripts/cronjobs.sh b/s1/scripts/cronjobs.sh @@ -0,0 +1,4 @@ +#!/bin/sh + +if [ ! -d "$HOME/log/" ]; then mkdir "$HOME/log/"; fi +crontab "$HOME/src/src/s1/cronjobs/user" diff --git a/s1/scripts/dotfiles.sh b/s1/scripts/dotfiles.sh @@ -2,12 +2,12 @@ src="$HOME/src/src" ln -fsh "$HOME/prv/ssh" "$HOME/.ssh" +ln -fsh "$src/s1/dotfiles/bin" "$HOME/bin" ln -fs "$src/s0/dotfiles/exrc" "$HOME/.exrc" ln -fs "$src/s0/dotfiles/hushlogin" "$HOME/.hushlogin" ln -fs "$src/s0/dotfiles/profile" "$HOME/.profile" ln -fs "$src/s0/dotfiles/shrc" "$HOME/.shrc" - ln -fs "$src/s1/dotfiles/exrc.local" "$HOME/.exrc.local" ln -fs "$src/s1/dotfiles/profile.local" "$HOME/.profile.local" ln -fs "$src/s1/dotfiles/shrc.local" "$HOME/.shrc.local"