From 13eb2d51c7284472efabc278bf9b7ec0b8575e47 Mon Sep 17 00:00:00 2001 From: doc Date: Sun, 14 Sep 2025 22:13:41 +0000 Subject: first commit --- sha256.sh | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100755 sha256.sh (limited to 'sha256.sh') diff --git a/sha256.sh b/sha256.sh new file mode 100755 index 0000000..296c8b6 --- /dev/null +++ b/sha256.sh @@ -0,0 +1,29 @@ +#!/bin/bash +# /usr/local/bin/mirror-checksum.sh +# Sync mirrors and generate SHA256 checksums + +# Set umask so checksums aren't world-writable +umask 022 + +# Define an array of mirrors: "name|rsync_source|local_dir|logfile" +MIRRORS=( + "archlinux|rsync://arch.mirror.constant.com/archlinux/|/brimstone2/mirror/archlinux|/var/log/arch-mirror-sync.log" + "gentoo|rsync://masterdistfiles.gentoo.org/gentoo/|/brimstone2/mirror/gentoo|/var/log/gentoo-mirror-sync.log" + "hardenedbsd|rsync://rsync.hardenedbsd.org/all/|/mnt/brimstone/mirror/hardenedbsd|/var/log/hbsd-sync.log" + "void|rsync://repo-sync.voidlinux.org/voidlinux/|/mnt/brimstone/mirror/void|/var/log/void-sync.log" + "slackware|rsync://mirrors.kernel.org/slackware/|/mnt/brimstone/mirror/slackware|/var/log/slackware-sync.log" +) + +for entry in "${MIRRORS[@]}"; do + IFS="|" read -r NAME SOURCE DEST LOG <<< "$entry" + + echo "[$(date)] Syncing $NAME mirror..." | tee -a "$LOG" + rsync -avhr --delete "$SOURCE" "$DEST" >> "$LOG" 2>&1 + + echo "[$(date)] Generating SHA256 checksums for $NAME..." | tee -a "$LOG" + (cd "$DEST" && \ + find . -type f -print0 | sort -z | \ + xargs -0 sha256sum > "$DEST/SHA256SUMS" ) + + echo "[$(date)] SHA256 complete for $NAME. Results stored at $DEST/SHA256SUMS" | tee -a "$LOG" +done -- cgit v1.2.3