Add script/ArchSyncOffUpstreamPuller.sh

This commit is contained in:
2026-01-10 00:11:02 -05:00
parent 1aed422f59
commit 3c539aebf3

View File

@@ -0,0 +1,71 @@
#!/bin/bash
NO_FORMAT="\e[0m"
C_RED="\e[38;5;9m"
PC=$(uname -n | awk '{print $1}')
#Verify if root
if [ "$UID" -ne 0 ]; then
echo -e "${C_RED}This script must be run as root.${NO_FORMAT}"
exit 1
fi
rsync_cmd() {
local -a cmd=(rsync -rlptH --safe-links --delete-delay --delay-updates
"--timeout=600" "--contimeout=60" --no-motd)
if stty &>/dev/null; then
cmd+=(-h -v --progress)
else
cmd+=(--quiet)
fi
if ((bwlimit>0)); then
cmd+=("--bwlimit=$bwlimit")
fi
"${cmd[@]}" "$@"
}
if [ "$PC" = "Nasperon" ]
then
target="/mnt/POOL3/Mirrors/archlinux/data"
lock="/mnt/POOL3/Mirrors/archlinux/syncrepo.lck"
else
target="/mnt/POOL1/Mirrors/archlinux/data"
lock="/mnt/POOL1/Mirrors/archlinux/syncrepo.lck"
fi
bwlimit=0
source_url='rsync://delta:874/archlinux'
lastupdate_url='https://delta:18650/archlinux/lastupdate'
[ ! -d "${target}" ] && mkdir -p "${target}"
exec 9>"${lock}"
flock -n 9 || exit
find "${target}" -name '.~tmp~' -exec rm -r {} +
if ! tty -s && [[ -f "$target/lastupdate" ]] && diff -b <(curl -Ls "$lastupdate_url") "$target/lastupdate" >/dev/null; then
rsync_cmd "$source_url/lastsync" "$target/lastsync"
exit 0
fi
rsync_cmd \
--exclude='*.links.tar.gz*' \
--exclude='/other' \
--exclude='/sources' \
"${source_url}" \
"${target}"
echo "Last sync was $(date -d @$(cat ${target}/lastsync))"
if [ "$PC" = "Nasperon" ]
then
chmod 775 -R /mnt/POOL3/Mirrors
chown 1000:1002 -R /mnt/POOL3/Mirrors
else
chmod 775 -R /mnt/POOL1/Mirrors
chown 1000:1001 -R /mnt/POOL1/Mirrors
fi
exit