On Thu, 5 Sep 2002 23:53:04 -0400 ThanhVu Nguyen [EMAIL PROTECTED] wrote:
Hi, I've heard people can write some scripts and put it in a cron job
that do a dist-upgrade on their system then send what've been upgraded
to their emails. Can someone share how they did it ? thanks
There's a debian package to do this, but I had already rolled my own
when I came across it. I have in /etc/cron.d/apt-upgrade the following
entry:
-8-8-8-8-8-8-8-8-8-
UPGTMP=/var/tmp/.outf.apt-upgrade
30 7,15,23 * * * root /usr/local/sbin/apt-upgrade | tee $UPGTMP
-8-8-8-8-8-8-8-8-8-
which tries to download upgraded packages and send the results to me by
mail, as well as storing them in a log file.
The /usr/local/sbin/apt-upgrade script checks to see if it is already
running, takes access failures into account by retrying a certain number
of times, and downloads all the updated packages (the installation
of the packages should *never* be done automatically).
It goes like this:
-8-8-8-8-8-8-8-8-8-
#!/bin/bash
BASE=/var/tmp
LOCK=$BASE/.lock.apt-upgrade
DONE=$BASE/.done.apt-upgrade
MAXTRIES=5 # retry limit
SLEEPSECS=300# seconds to sleep between retries
SEP=
echo $SEP ; echo $0 ; echo $SEP ; date ; echo $SEP ; echo
if [ -e $LOCK ] ; then
echo
echo ERROR: already running ($LOCK exists, process `cat $LOCK`).
echo Exiting...
echo
exit
fi
TRIES=1
echo -n $$ $LOCK
while ! apt-get update ; do
echo
if [ $TRIES -eq $MAXTRIES ] ; then
echo Try $TRIES: there were errors. Try limit reached, giving up.
echo
break
else
echo Try $TRIES: there were errors. Sleeping for $SLEEPSECS s...
echo
sleep $SLEEPSECS ; TRIES=$(($TRIES + 1))
fi
done
echo ; echo $SEP ; date ; echo $SEP ; echo
TRIES=1
while ! apt-get -d -y -u dist-upgrade ; do
echo
if [ $TRIES -eq $MAXTRIES ] ; then
echo Try $TRIES: there were errors. Try limit reached, giving up.
echo
break
else
echo Try $TRIES: there were errors. Sleeping for $SLEEPSECS s...
echo
sleep $SLEEPSECS ; TRIES=$(($TRIES + 1))
fi
done
echo ; echo Done after $TRIES tries. ; echo
echo ; echo $SEP ; date ; echo $SEP ; echo
rm -f ${DONE}*
mv $LOCK ${DONE}.$(date +%Y-%m-%d-%H:%M)
-8-8-8-8-8-8-8-8-8-
--
Carlos Sousa
http://vbc.dyndns.org/
--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]