Adrian Revill wrote:
Just in case anyone needs a script to run cobbler reposync from cron,
here is one i have written. It runs each repo in turn, and gives each
a number of tries (10) to over come problems with failing syncs.
#!/bin/bash
TRIES=10 # number of times to try and run reposync
LOGFILE="/var/log/cobbler/cobbler_reposync.log"
function running {
PID=$(ps ax| awk '/cobbler reposync/ && !/awk/ {print ($1)}')
if [ -z $PID ]
then
log "cobbler reposync is not running"
return 1
fi
log "cobbler reposync is running PID=$PID"
return 0
}
function log {
logger -t "COBBLER_REPOSYNC" -- $1
}
function run {
try=1
ret=1
while [ $try -le $TRIES ]
do
running
ok=$?
if [ $ok -eq 0 ]
then
log "Already running, aborting"
break
fi
log "Attempt $try for $1"
cobbler reposync --only=$1 2>&1 >> $LOGFILE
ret=$?
if [ $ret -eq 0 ]
then
break
fi
log "Attempt $try failed"
try=$[ $try + 1 ]
done
if [ $ret -eq 0 ]
then
log "Compleated $1"
else
log "Too many trys or already running, giving up on $1"
fi
}
log "Starting"
mv $LOGFILE $LOGFILE.1
for name in $(awk '/name:/ {print($2)}' /var/lib/cobbler/repos)
do
run $name
done
_______________________________________________
et-mgmt-tools mailing list
et-mgmt-tools@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/et-mgmt-tools
Nice! Do you mind if I put this in a 'contrib' directory in cobbler's
version control so other people can find it later?
We can mention this on the Wiki too.
One small change I'd make is to make the last awk line run 'cobbler repo
list' instead of grepping the file, that way
it works regardless of the storage backend -- though everyone pretty
much uses the stock one.
--Michael
_______________________________________________
et-mgmt-tools mailing list
et-mgmt-tools@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/et-mgmt-tools