On Wed, 16 May 2001, Eric Faurot wrote:
> I set up a cron job at ibiblio to get the snapshots
> Here is the script:
>
> --------------------------------------------------
> #!/bin/bash
>
> # CVS tree
> CVSDIR=<path to local cvs copy>
>
> # Where should all the snapshots go
> SNPDIR=<path to ftp>
>
> # We keep logs in case
> LOGDIR=<path to log>
>
> # The modules that need snapshots. If a module is to be added,
> # it must be imported from cvs manually first.
> MODULES="ggi-core lowlevel"
>
> # how long before we trash the snapshots
> HISTORY=30
>
> BIN=/bin
>
> TODAY=`$BIN/date +%Y%m%d`
>
> makesnapshot() {
> if [ -f $LOGDIR/$1-$TODAY ]; then
> echo `$BIN/date` : Snapshot for $1 already done today >> $LOGDIR/log
> else
> echo `$BIN/date` : Making snapshot for $1 >> $LOGDIR/log
> $BIN/rm -f $LOGDIR/$1*
> # stamp
> $BIN/touch $LOGDIR/$1-$TODAY
> cd $CVSDIR
>
> # duplicate the current tree
> $BIN/cp -R $1 $1-pre
>
> #update the package
> cd $1; /usr/bin/cvs -Q update >> $LOGDIR/log; cd ..
>
> #create the diff
> /usr/bin/diff -ur $1-pre $1 > $SNPDIR/$1-diff-$TODAY
>
> #erase the old tree
> $BIN/rm -rf $1-pre
> if test -s $SNPDIR/$1-diff-$TODAY; then
> #build the snapshot
> $BIN/tar cvfz $SNPDIR/$1-$TODAY.tgz $1
Why gzip compressed? bzip2 has a much better compression.
> $BIN/gzip $SNPDIR/$1-diff-$TODAY
Dito.
> else
> # no diff
> $BIN/rm $SNPDIR/$1-diff-$TODAY
> fi
> fi
> }
>
> for I in $MODULES; do
> makesnapshot $I
> done
> #erase all snapshots that are too old.
> /usr/bin/find $SNPDIR/ -ctime $HISTORY -exec /bin/rm {};
>
> ##############################################################
>
Apart from the points above it looks good to me.
CU,
Christoph Egger
E-Mail: [EMAIL PROTECTED]