Hello all. Allthough it probably isn't a tremendous memory saver, I couldn't accept that busybox tar didn't function due to the problem with the exclude files. After a few changes to the /usr/sbin/lrcfg.back.script things are working. I didn't find a problem with any of the packages I backed up. For root I had to create a special case. (because of the root list being (./ ) Tested with ash (from oxygen , linux 2.4.3 Busybox 0.50) Look very carefully for changes in size at backing up !! Smaller packets are mostly not more compressed but less complete ; ) Changes to lrcfg.back.script. #!/bin/sh # #lrback.script v0.0.1 (don't trust these version numbers) # #Ropykite Dave 'Kill a Cop' Cinege - GPL2 # #Linux Router Project if [ $# -ne 3 ]; then echo "Bad call to $(basename $0)" exit 1 fi LRPKG="/var/lib/lrpkg" MNT="$LRPKG/mnt" PACKAGE="$1" WTMP="$2" CWRT="$3" INCLUDE="/var/lib/lrpkg/$PACKAGE.list" EXCLUDE="/tmp/EXCLUDE" # # included as a temporary file # EXCLUDE2="/tmp/EXCLUDE2" # # # if [ "$WTMP" = "ON" ] ; then DIR="/tmp" else DIR="$MNT" fi if [ "$CWRT" = "ON" ] && [ "$WTMP" = "OFF" ] ; then echo echo -n "Begin copy to device? (No space check!) " read YN if [ ! "$YN" = "y" ] ; then echo "Exiting..." sleep 2 exit 1 fi fi mv $INCLUDE /tmp/tmp.list >/dev/null 2>&1 # # start of the real changes: # cat all include and exclude files except the one from # PACKAGE to temp file EXCLUDE2 # cat /var/lib/lrpkg/*.list /var/lib/lrpkg/*.links >$EXCLUDE2 # # now check for the include directory and files if any of the # paths that are to exclude are a "deeper" description of the # include path if so than include the exclude path. # ignore all paths that aren't in the include statement anyway. # for i in `cat /tmp/tmp.list `; do grep $i $EXCLUDE2 >> $EXCLUDE done # # for root use the "old" statement as "/" is not included # in the packages path. and all paths are "deeper" as # the root path. # [ "$PACKAGE" = "root" ] && cat $EXCLUDE2 > $EXCLUDE # # from here continue as usual except for tar # mv /tmp/tmp.list $INCLUDE >/dev/null 2>&1 echo -n "Creating $PACKAGE.lrp Please wait: " ticker cd / cd / #tar cf - -T $INCLUDE -X $EXCLUDE| gzip >$DIR/$PACKAGE.lrp #ctar `cat $INCLUDE` -X `cat $EXCLUDE` | gzip \ >$DIR/$PACKAGE.lrp # # now the actual tar statement # tar -c `cat $INCLUDE` -X $EXCLUDE | gzip >$DIR/$PACKAGE.lrp # # killall ticker >/dev/null 2>&1 echo -n \^H rm $EXCLUDE rm $EXCLUDE2 # # necessary to clean the two temp files # the rest is as usuall if [ "$WTMP" = "ON" ]; then if [ "$CWRT" = "ON" ]; then echo echo "New Package:" ls -l /tmp/$PACKAGE.lrp echo "Old Package:" ls -l $MNT/$PACKAGE.lrp df $MNT echo echo -n "Enough freespace? (y/N) " read YN if [ ! "$YN" = "y" ]; then echo "Exiting..." rm /tmp/$PACKAGE.lrp sync sleep 2 exit 1 fi fi echo -n "Copying $PACKAGE.lrp Please wait: " ticker if ! cp /tmp/$PACKAGE.lrp $MNT/$PACKAGE.lrp >/dev/null 2>&1; then echo "Could not move /tmp/$PACKAGE.lrp to \ $MNT/$PACKAGE.lrp" sleep 2 exit 1 fi killall ticker >/dev/null 2>&1 echo -n \^H rm /tmp/$PACKAGE.lrp fi sync exit 0 Any feedback is welcome eric Wolzak http://leaf.sourceforge.net/devel/ericw _______________________________________________ Leaf-devel mailing list [EMAIL PROTECTED] http://lists.sourceforge.net/lists/listinfo/leaf-devel