5 ## Make sure we're running as the right user.
8 *) exec userv
-fstdin
=/dev
/null mirror run
"$@";;
11 ## Set up a plausible environment.
12 HOME
=/var
/lib
/mirror-admin
; export HOME
; cd
13 MIRRORS
=/mnt
/mirrors
; export MIRRORS
14 PATH
=$HOME/bin
:/usr
/bin
:/usr
/sbin
:/bin
:/sbin
:/usr
/local/bin
:/usr
/local/sbin
18 ## Make sure we're running with a lock file.
19 case "${MIRROR_LOCKED-nil}" in
20 nil
) exec env MIRROR_LOCKED
=t locking
-f var
/mirror.lock
"$0" "$@" ;;
23 ## Hack for mad Kerberized NFS.
24 if [ -r etc
/krb5.keytab
]; then
25 kinit
-k
-t etc
/krb5.keytab mirror
28 ## Before we start, rotate the logs. (Doing things this way means that we
29 ## can be sure we don't lose new logs, even if the log rotation goes
31 logrotate
-s var
/logrotate.state etc
/logrotate.conf
33 ## Let SIGINT take out the children only.
36 ## By default run all of the scripts.
37 case $# in 0) set "*" ;; esac
39 ## Now do the various mirroring things.
40 for file in $
(run-parts
--list etc
/mirrors.d
); do
41 [ -x
"$file" ] ||
continue
44 leaf
=$
(echo "$file" |
sed 's:^.*/::; s/^[0-9]\+[-_.]//')
46 case "$leaf" in $pat) matchp
=t
; break ;; esac
48 case $matchp in nil
) continue ;; esac
50 base
=${file##*/}; base
=${base#[0-9]*-}
53 echo "***--------------------------------------------------"
54 echo "*** Running $base at $(date +%Y-%m-%dT%H:%M:%S)"
56 set +e
; (trap - INT
; exec "$file"); rc
=$?
; set -e
58 echo "*** Finished $(date +%Y-%m-%dT%H:%M:%S); rc = $rc"
59 if [ -d etc
/post-
$base.d
]; then
60 for i
in $
(run-parts
--list etc
/post-
$base.d
); do
63 echo "*** Running post-script $s at $(date +%Y-%m-%dT%H:%M:%S)"
64 set +e
; (trap - INT
; exec "$i"); rc
=$?
; set -e
66 echo "*** Finished post-script $s $(date +%Y-%m-%dT%H:%M:%S); rc = $rc"
69 ) >>log
/$base.log
2>&1