Merge pull request #127 from knalb/mirrorsync_updates

* Exit cleanly when upstream is unchanged instead of with code 1.
* Find & use rsync in user's path
This commit is contained in:
Neil Hanlon 2021-11-29 13:25:58 -05:00 committed by GitHub
commit c39b5064bd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -31,14 +31,24 @@
# SOFTWARE. # SOFTWARE.
# #
# Find rsync in default path
rsync_run(){
if command -v rsync >/dev/null; then
command rsync "$@";
else
command -p rsync "$@";
fi;
}
# You can change v to q if you do not want detailed logging # You can change v to q if you do not want detailed logging
opts=(-vrlptDSH --exclude="*.~tmp~" --delete-delay --delay-updates) opts=(-vrlptDSH --exclude="*.~tmp~" --delete-delay --delay-updates)
# Please use a mirror next to you for initial sync # Please use a mirror geographically close to you for initial sync,
# or if you are hosting a private rather than a pulic mirror. # or if you are hosting a private mirror(not publicly available).
# Local mirrors might be faster. #
# Also we might restrict access to the master in the future. # Note that local mirrors may be faster, and we might restrict
# access to the master in the future.
#
# A complete list of mirrors can be found at # A complete list of mirrors can be found at
# https://mirrors.rockylinux.org/mirrormanager/mirrors/Rocky # https://mirrors.rockylinux.org/mirrormanager/mirrors/Rocky
src="msync.rockylinux.org::rocky/mirror/pub/rocky" src="msync.rockylinux.org::rocky/mirror/pub/rocky"
@ -53,12 +63,12 @@ lockfile="$0.lockfile"
logfile="$0.log" logfile="$0.log"
# Check if the filelistfile has changed on upstream mirror # Check if the filelistfile has changed on upstream mirror
# and exit if it is still the same # and exit cleanly if it is still the same
checkresult=$(rsync --no-motd --dry-run --out-format="%n" "${src}/${filelistfile}" "${dst}/${filelistfile}") checkresult=$(rsync_run --no-motd --dry-run --out-format="%n" "${src}/${filelistfile}" "${dst}/${filelistfile}")
if [[ -z "$checkresult" ]]; then if [[ -z "$checkresult" ]]; then
printf "%s unchanged. Not updating at %(%c)T\n" "$filelistfile" -1 >> "$logfile" 2>&1 printf "%s unchanged. Not updating at %(%c)T\n" "$filelistfile" -1 >> "$logfile" 2>&1
logger -t rsync "Not updating ${mirrormodule}: ${filelistfile} unchanged." logger -t rsync "Not updating ${mirrormodule}: ${filelistfile} unchanged."
exit 1 exit 0
fi fi
# Check for existing lockfile to avoid multiple simultaneously running syncs # Check for existing lockfile to avoid multiple simultaneously running syncs
@ -77,7 +87,7 @@ fi
printf '%s\n' "$$" > "$lockfile" printf '%s\n' "$$" > "$lockfile"
printf "Started update at %(%c)T\n" -1 >> "$logfile" 2>&1 printf "Started update at %(%c)T\n" -1 >> "$logfile" 2>&1
logger -t rsync "Updating ${mirrormodule}" logger -t rsync "Updating ${mirrormodule}"
rsync "${opts[@]}" "${src}/" "${dst}/" >> "$logfile" 2>&1 rsync_run "${opts[@]}" "${src}/" "${dst}/" >> "$logfile" 2>&1
logger -t rsync "Finished updating ${mirrormodule}" logger -t rsync "Finished updating ${mirrormodule}"
printf "End: %(%c)T\n" -1 >> "$logfile" 2>&1 printf "End: %(%c)T\n" -1 >> "$logfile" 2>&1
rm -f "$lockfile" rm -f "$lockfile"