From fb7a2f48795d00e8db18450bb3b956674d260a62 Mon Sep 17 00:00:00 2001 From: EuAndreh Date: Sat, 11 May 2024 16:42:54 -0300 Subject: Add imported code from dotfiles --- src/cronjob | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100755 src/cronjob (limited to 'src') diff --git a/src/cronjob b/src/cronjob new file mode 100755 index 0000000..b6798f0 --- /dev/null +++ b/src/cronjob @@ -0,0 +1,43 @@ +#!/bin/sh +. /etc/rc +set -eu + + +CMD="$*" +HOSTNAME="$(hostname)" +FROM="cronjob@$HOSTNAME" +TIMEOUT='14400' # four hours +STATUS_F="$(mkstemp)" +CLOCK_F="$(mkstemp)" +OUT="$(mkstemp)" + +email() { + { + cat <<-EOF + Content-Type: text/plain; charset=UTF-8 + Content-Transfer-Encoding: 8bit + From: $FROM + To: root@localhost + Subject: (exit status: $(cat "$STATUS_F")) - $HOSTNAME: $CMD + + EOF + cat "$OUT" + } | sendmail -t -f "$FROM" +} +trap 'email; rm -f "$OUT" "$STATUS_F" "$CLOCK_F"' EXIT + +{ + cat <<-EOF + Running commad: $CMD + Starting at: $(timestamp) + + EOF + + statusf "$STATUS_F" clock -o "$CLOCK_F" timeout "$TIMEOUT" nicely "$@" + + cat <<-EOF + + Finished at: $(timestamp) + Duration: $(minutes "$(cat "$CLOCK_F")") + EOF +} 2>&1 | pre "[$CMD]" | ts '%Y-%m-%dT%H:%M:%S' | tee "$OUT" >> /var/log/cronjobs.log -- cgit v1.2.3