I have a script that uses rsync to pull the Fedora repositories nightly.
If I run it manually, it works flawlessly. But if it runs via cron, I
get an error on all the Fedora 28 repositories. I do not get the error
on Fedora 27 or RPMFusion 27 or 28 repositories. The script sets timeout
values to 3600 seconds but fails in only a few seconds. (I haven't
started to sync F29 repos yet.)
The error message is,
rsync: safe_read failed to read 1 bytes [Receiver]: Connection reset
by peer (104)
rsync error: error in rsync protocol data stream (code 12) at
io.c(276) [Receiver=3.1.3]
The commands in the script are,
# cat mirror
#!/bin/sh
/root/bin/mirror-fedora-27
/root/bin/mirror-fedora-28
/root/bin/mirror-rpmfusion-27
/root/bin/mirror-rpmfusion-28
And the F28 subordinate script is,
# cat mirror-fedora-28
#!/bin/sh
opt="-aHv --timeout=3600 --contimeout=3600 --exclude=repoview/**"
opt+=" --usermap=:apache --groupmap=:apache --exclude=0ad-*"
opt+=" --exclude=/*/armhfp/** --exclude=debug/**"
opt+=" --exclude=repoview/** --exclude=*.html"
opt+=" --exclude=/*/SRPMS/** --delete-excluded"
src="rsync://mirrors.kernel.org/fedora"
dst="/var/www/html/pub/fedora/linux"
r="releases"; u="updates"; s="Server";
e="Everything"; w="Workstation"
doit () {
mkdir -p $dst/$3
rsync $opt $src/$2 $dst/$3
}
doit "$e x86_64" $r/28/$e/x86_64/os/ $r/28/$e/x86_64/os
doit "$s x86_64" $r/28/$s/x86_64/os/ $r/28/$s/x86_64/os
doit "$w x86_64" $r/28/$w/x86_64/os/ $r/28/$w/x86_64/os
doit "$u x86_64" $u/28/$e/x86_64/ $u/28/$e/x86_64/os
Other scripts are similar with the obvious substitutions.
--
Dave Close
"Learn from the mistakes of others.
You can never live long enough to make them all yourself."
--Groucho Marx