PDA

View Full Version : Backup script



lao
13-11-11, 14:26
Exista scriptul acesta care merge foarte bine in orice imagine pe duo, respectiv solo. Problema e ca pe uno nu vrea, am incercat sa modific cate ceva, dar fara succes.
Vreo idee? Ceva...

#!/bin/sh

DIRECTORY=/media/hdd/backup
MTDBOOT=2
MTDROOT=0

if grep dm500hd /proc/stb/info/model > /dev/null ; then
BOXTYPE=vuplus
OPTIONS="--eraseblock=0x20000 -n -l"
else
echo "No $BOXTYPE Box detected !!!"
exit 0
fi

echo " "
echo "************************************************************************"
echo " "
echo " NFI Backup Tool for $BOXTYPE by scope34 (AN) Version 1.1 - 24.01.2010"
echo " "
echo " Modded by Bruty ( Fix 25.3.2010 )"
echo " "
echo "************************************************************************"
echo " "
echo $BOXTYPE" detected"
echo " "
echo "************************************************************************"
echo " "

echo "---------------------------------------------------------------"
echo "Examine free memory, it approx. 60MB one needs"
MEMFREE=`free | grep Total | tr -s " " | cut -d " " -f 4`
if [ "$MEMFREE" -lt 61440 ]; then
echo "Memory is small 60MB"

echo "create swap on HDD with 60 Mb"
dd if=/dev/zero of=$DIRECTORY/swapfile_backup bs=1024 count=61440
mkswap $DIRECTORY/swapfile_backup
swapon $DIRECTORY/swapfile_backup
echo "swap aktivated"

else
echo " Memory capacity = $MEMFREE kB"
fi

starttime="$(date +%s)"
echo "----------------------------------"
echo "- image backup started: `date +%H:%M:%S` -"
echo "----------------------------------"

DATE=`date +%Y%m%d_%H%M%S`
MKFS=$DIRECTORY/mkfs.jffs2
BUILDIMAGE=$DIRECTORY/buildimage
NANDDUMP=$DIRECTORY/nanddump
BACKUPIMAGE=$DIRECTORY/$DATE/backup-image-$BOXTYPE-$DATE.nfi

cd $DIRECTORY
mkdir $DATE

if [ ! -f $MKFS ] ; then
echo $MKFS" not found"
exit 0
fi
if [ ! -f $BUILDIMAGE ] ; then
echo $BUILDIMAGE" not found"
exit 0
fi

if [ ! -f $NANDDUMP ] ; then
echo $NANDDUMP" not found"
exit 0
fi

rm -rf $DIRECTORY/bi
mkdir -p $DIRECTORY/bi
mkdir -p /tmp/bi/root
mkdir -p /tmp/bi/boot

mount -t jffs2 /dev/mtdblock$MTDROOT /tmp/bi/root
mount -t jffs2 /dev/mtdblock$MTDBOOT /tmp/bi/boot

if [ -s $BUILDIMAGE ] ; then
echo "Create boot.jffs2"
$MKFS --root=/tmp/bi/boot --faketime --output=$DIRECTORY/bi/boot.jffs2 $OPTIONS
echo "Create root.jffs2"
$MKFS --root=/tmp/bi/root --faketime --output=$DIRECTORY/bi/root.jffs2 $OPTIONS
fi

echo "Create kerneldump"
echo " "
if [ $BOXTYPE = "vuplus" ] ; then
$NANDDUMP /dev/mtd1 -o -b > $DIRECTORY/bi/vmlinux.gz
fi

echo " "
echo "************************************************************************"
echo " "
echo "Creating vuplus NFI-Backup Image"
echo "Creating vuplus USB-Backup Image"
echo " "
echo "************************************************************************"
echo " "

if [ $BOXTYPE = "vuplus" ] ; then
$BUILDIMAGE $DIRECTORY/bi/root.jffs2 $DIRECTORY/bi/boot.jffs2 $DIRECTORY/bi/vmlinux.gz > $BACKUPIMAGE

mkdir -p $DIRECTORY/$DATE/vuplus/duo
mv $DIRECTORY/bi/root.jffs2 $DIRECTORY/$DATE/vuplus/duo/root_cfe_auto.jffs2
mv $DIRECTORY/bi/boot.jffs2 $DIRECTORY/$DATE/vuplus/duo/boot_cfe_auto.jffs2
mv $DIRECTORY/bi/vmlinux.gz $DIRECTORY/$DATE/vuplus/duo/kernel_cfe_auto.bin
fi
if [ -f $BACKUPIMAGE ] ; then
echo " "
echo "************************************************************************"
echo " "
echo "NFI Image created on" $BACKUPIMAGE
fi
if [ -f $DIRECTORY/$DATE/vuplus/duo/root_cfe_auto.jffs2 -a -f $DIRECTORY/$DATE/vuplus/duo/boot_cfe_auto.jffs2 -a -f $DIRECTORY/$DATE/vuplus/duo/kernel_cfe_auto.bin ] ; then
echo " "
echo "************************************************************************"
echo " "
echo "USB Image created on" $DIRECTORY/$DATE"/vuplus/duo Tree"
echo " "
echo "Just copy the tree beginning from $DIRECTORY/$DATE to root of your Usb-stick"
echo " "
echo "Be sure to plugin USB-Stick always to front USB-Port"
echo " "
else
echo "Image creation failed - e. g. wrong backup destination or no space left on backup device"
fi

echo "************************************************************************"

if [ -s "$DIRECTORY"/swapfile_backup ] ; then

swapoff $DIRECTORY/swapfile_backup
rm -rf $DIRECTORY/swapfile_backup
echo "--------------------------------"
echo "- deactivated and deleted swap -"
echo "--------------------------------"
fi

stoptime="$(date +%s)"
elapsed_seconds="$(expr $stoptime - $starttime)"
echo "*****************************************************************"
echo "* image backup finshed: `date +%H:%M:%S` *"
echo "* elapsed time was: $((elapsed_seconds / 60)) minutes $((elapsed_seconds % 60)) seconds *"
echo "*****************************************************************"


umount /tmp/bi/root
umount /tmp/bi/boot
rm -rf /tmp/bi
rm -rf $DIRECTORY/bi

exit 0