Add mirror/mirror_failnotify.sh

This commit is contained in:
2025-01-13 20:08:10 +11:00
parent d157612e9e
commit 2363409dee

View File

@@ -0,0 +1,61 @@
#!/bin/bash
set -euo pipefail
# Notification Settings for Nfty.sh. Ajust the topic
ntfy_topic="TOPIC"
ntfy_server="ntfy.sh"
# Timestamp for notifications
now=$(date '+%F_%H%M%S')
notify() {
curl -H "Title: $1" \
-H "Priority: $2" \
-H "Tags: $3" \
-H "Markdown: yes" \
-d "$4" \
"$ntfy_server/$ntfy_topic"
}
title="$(hostname)"
mirror() {
local cmd="$1"
local description="$2"
# Run the command and capture the output and status
if ! output=$($cmd 2>&1); then
notify "$title" "high" "mirror" \
"$description failed at $now with error: $output"
exit 1
fi
echo "Command succeeded: $description"
}
# Set environment variables
export GNUPGHOME=/mirror/debmirror/mirrorkeyring
# Variables for debmirror
arch=amd64
section=main,restricted,universe,multiverse
release=noble,noble-security,noble-updates,noble-backports
mirror_server=mirror.aarnet.edu.au
inPath=/ubuntu
proto=http
outPath=/mirror/debmirror/amd64
# Ensure the output directory exists
mkdir -p "$outPath"
# Run debmirror wrapped in `mirror` for notification
mirror "debmirror -a $arch \
--no-source \
--rsync-options --recursive \
--rsync-options --partial \
-s $section \
-h $mirror_server \
-d $release \
-r $inPath \
--progress \
--method=$proto \
$outPath" "Debmirror synchronization"