home *** CD-ROM | disk | FTP | other *** search
/ chilidog.highland.cc.ks.us / chilidog.highland.cc.ks.us.zip / chilidog.highland.cc.ks.us / backup / bradford.20110725.etc.tar.gz / bradford.20110725.etc.tar / etc / cron.daily / suse.de-backup-rpmdb < prev    next >
Text File  |  2003-09-08  |  2KB  |  73 lines

  1. #!/bin/sh
  2. #
  3. #
  4. # backup_rpmdb. This script was split off cron.daily
  5. # Please add your local changes to cron.daily.local
  6. # since this file will be overwritten, when updating your system.
  7. #
  8. # Copyright (c) 1996-2002 SuSE Linux AG, Nuernberg, Germany.
  9. #
  10. # please send bugfixes or comments to http://www.suse.de/feedback.
  11. #
  12. # Author: Burchard Steinbild, 1996
  13. #         Florian La Roche, 1996
  14. #
  15. #
  16. # paranoia settings
  17. #
  18. umask 022
  19.  
  20. PATH=/sbin:/bin:/usr/sbin:/usr/bin
  21. export PATH
  22.  
  23. #
  24. # get information from /etc/sysconfig
  25. #
  26. if [ -f /etc/sysconfig/backup ] ; then
  27.     . /etc/sysconfig/backup
  28. fi
  29. #
  30. #
  31. PACKAGEDBFILE=packages.rpm
  32. if test -e /var/lib/rpm/Packages ; then
  33.     PACKAGEDBFILE=Packages
  34. fi
  35. #
  36. # create backups of rpm data base
  37. #
  38. if test -n "$RPMDB_BACKUP_DIR" -a -e /var/lib/rpm/$PACKAGEDBFILE ; then
  39.     mkdir -p $RPMDB_BACKUP_DIR
  40.     OLD_MD5=""
  41.     test -e $RPMDB_BACKUP_DIR/rpmdb_recent_md5 && \
  42.         OLD_MD5="`cat $RPMDB_BACKUP_DIR/rpmdb_recent_md5`"
  43.     NEW_MD5="`cat /var/lib/rpm/$PACKAGEDBFILE | md5sum`"
  44.     if test "$OLD_MD5" != "$NEW_MD5" ; then
  45.         DATESTRING=`date +"%Y%m%d"`
  46.  
  47.         NEWNAME=$RPMDB_BACKUP_DIR/$PACKAGEDBFILE-$DATESTRING
  48.         NUMBER=2
  49.         while [ -e $NEWNAME -o -e $NEWNAME.gz ] ; do
  50.             NEWNAME=$RPMDB_BACKUP_DIR/$PACKAGEDBFILE-$DATESTRING-$NUMBER
  51.             NUMBER=`expr $NUMBER + 1`
  52.         done
  53.  
  54.         if gzip -9 < /var/lib/rpm/$PACKAGEDBFILE > $NEWNAME.gz; then
  55.             echo "$NEW_MD5" > $RPMDB_BACKUP_DIR/rpmdb_recent_md5
  56.             test "$MAX_RPMDB_BACKUPS" -gt 0 2> /dev/null || MAX_RPMDB_BACKUPS=0
  57.             NUMBER=1
  58.             for BACKUPFILE in `ls -1 -t $RPMDB_BACKUP_DIR/$PACKAGEDBFILE-*` ; do
  59.                 if test "$NUMBER" -gt "$MAX_RPMDB_BACKUPS" ; then
  60.                     rm -f $BACKUPFILE
  61.                 fi
  62.                 NUMBER=`expr $NUMBER + 1`
  63.             done
  64.         else
  65.             echo "ERROR!! can not backup RPM Database to $RPMDB_BACKUP_DIR."
  66.             echo "Maybe there is not enough disk space."
  67.             rm -f $NEWNAME $NEWNAME.gz
  68.         fi
  69.     fi
  70. fi
  71.  
  72. exit 0
  73.