Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/sh
- # creator of the script Pedro_Newbie (http://forums.openpli.org)
- VERSION="Version 3.9 - 11/08/2015\ncreator of the script Pedro_Newbie (http://forums.openpli.org)\n"
- DIRECTORY="$1"
- START=$(date +%s)
- DATE=`date +%Y%m%d_%H%M`
- IMAGEVERSION=`date +%Y%m%d`
- MKFS=/usr/sbin/mkfs.ubifs
- UBINIZE=/usr/sbin/ubinize
- NANDDUMP=/usr/sbin/nanddump
- WORKDIR="$DIRECTORY/bi"
- echo "Plugin version = $VERSION\n"
- echo "Back-up media = $DIRECTORY\n"
- df -h "$DIRECTORY"
- echo "Back-up date_time = $DATE\n"
- echo "Working directory = $WORKDIR\n"
- CREATE_ZIP="$2"
- IMAGENAME="$3"
- if grep rootfs /proc/mounts | grep ubifs > /dev/null; then
- ROOTFSTYPE=ubifs
- else
- echo "NO UBIFS, THEN JFFS2 BUT NOT SUPPORTED ANYMORE\n"
- exit 0
- fi
- ## TESTING THE XTREND, CLARK TECH AND XP MODELS
- if [ -f /proc/stb/info/boxtype ] ; then
- MODEL=$( cat /proc/stb/info/boxtype )
- if grep et /proc/stb/info/boxtype > /dev/null ; then
- TYPE=ET
- MKUBIFS_ARGS="-m 2048 -e 126976 -c 4096"
- if [ $MODEL = "et10000" -o $MODEL = "et8000" -o $MODEL = "et8500" -o $MODEL = "et7000" -o $MODEL = "et7500" ] ; then
- MKUBIFS_ARGS="-m 2048 -e 126976 -c 8192"
- else
- MODEL=${MODEL:0:3}x00
- fi
- UBINIZE_ARGS="-m 2048 -p 128KiB"
- SHOWNAME="ET/ Xtrend $MODEL"
- MAINDEST="$DIRECTORY/$MODEL"
- EXTRA="$DIRECTORY/automatic_fullbackup/$DATE"
- echo "Destination = $MAINDEST\n"
- if grep boot /proc/mtd > /dev/null ; then
- exit 0
- fi
- elif grep giga /proc/stb/info/boxtype > /dev/null ; then
- TYPE=gigablue
- MKUBIFS_ARGS = "-m 2048 -e 126976 -c 4000"
- UBINIZE_ARGS = "-m 2048 -p 128KiB"
- SHOWNAME="$MODEL HD Quad Plus"
- MAINDEST="$DIRECTORY/gigablue/quadplus"
- EXTRA="$DIRECTORY/automatic_fullbackup/$DATE/gigablue"
- echo "Destination = $MAINDEST\n"
- else
- echo "No supported receiver found!\n"
- exit 0
- fi
- ## TESTING IF ALL THE TOOLS FOR THE BUILDING PROCESS ARE PRESENT
- if [ ! -f $MKFS ] ; then
- echo "NO MKFS.UBIFS FOUND, ABORTING\n"
- exit 0
- fi
- if [ ! -f $NANDDUMP ] ; then
- echo "NO NANDDUMP FOUND, ABORTING\n"
- exit 0
- fi
- echo "Starting Full Backup!\nOptions control panel will not be available 2-15 minutes.\nPlease wait ..."
- echo "--------------------------"
- control_c(){
- echo "Control C was pressed, quiting..."
- umount /tmp/bi/root 2>/dev/null
- rmdir /tmp/bi/root 2>/dev/null
- rmdir /tmp/bi 2>/dev/null
- rm -rf "$WORKDIR" 2>/dev/null
- exit 255
- }
- trap control_c SIGINT
- echo "\nWARNING!\n"
- echo "To stop creating a backup, press the Menu button.\n"
- sleep 2
- ## PREPARING THE BUILDING ENVIRONMENT
- rm -rf "$WORKDIR"
- echo "Remove directory = $WORKDIR\n"
- mkdir -p "$WORKDIR"
- echo "Recreate directory = $WORKDIR\n"
- mkdir -p /tmp/bi/root
- echo "Create directory = /tmp/bi/root\n"
- sync
- mount --bind / /tmp/bi/root
- echo \[ubifs\] > "$WORKDIR/ubinize.cfg"
- echo mode=ubi >> "$WORKDIR/ubinize.cfg"
- echo image="$WORKDIR/root.ubi" >> "$WORKDIR/ubinize.cfg"
- echo vol_id=0 >> "$WORKDIR/ubinize.cfg"
- echo vol_type=dynamic >> "$WORKDIR/ubinize.cfg"
- echo vol_name=rootfs >> "$WORKDIR/ubinize.cfg"
- echo vol_flags=autoresize >> "$WORKDIR/ubinize.cfg"
- echo "UBINIZE.CFG CREATED WITH THE CONTENT:\n"
- echo "$WORKDIR/ubinize.cfg\n"
- touch "$WORKDIR/root.ubi"
- chmod 644 "$WORKDIR/root.ubi"
- echo "--------------------------"
- echo "Start creating root.ubi\n"
- $MKFS -r /tmp/bi/root -o "$WORKDIR/root.ubi" $MKUBIFS_ARGS
- echo "Start UBINIZING\n"
- $UBINIZE -o "$WORKDIR/root.ubifs" $UBINIZE_ARGS "$WORKDIR/ubinize.cfg" >/dev/null
- chmod 644 "$WORKDIR/root.ubifs"
- echo "Start creating kerneldump\n"
- if [ $MODEL = "gigablue" -o $MODEL = "duo2" -o $MODEL = "ini-8000am" ]; then
- $NANDDUMP /dev/mtd2 -q > "$WORKDIR/vmlinux.gz"
- else
- $NANDDUMP /dev/mtd2 -q > "$WORKDIR/vmlinux.gz"
- fi
- TSTAMP="$(date "+%Y-%m-%d-%Hh%Mm")"
- if [ $TYPE = "gigablue" ] ; then
- rm -rf "$MAINDEST"
- echo "Removed directory = $MAINDEST\n"
- mkdir -p "$MAINDEST"
- echo "Created directory = $MAINDEST\n"
- mv "$WORKDIR/root.ubifs" "$MAINDEST/rootfs.bin"
- mv "$WORKDIR/vmlinux.gz" "$MAINDEST/kernel.bin"
- echo "rename this file to 'force' to force an update without confirmation" > "$MAINDEST/noforce";
- echo "$MODEL-$IMAGEVERSION" > "$MAINDEST/imageversion"
- if [ -z "$CREATE_ZIP" ] ; then
- mkdir -p "$EXTRA"
- echo "Created directory = $EXTRA\n"
- cp -r "$MAINDEST" "$EXTRA"
- touch "$DIRECTORY/automatic_fullbackup/.timestamp"
- else
- echo "Create zip archive..."
- cd $DIRECTORY && $CREATE_ZIP -r $DIRECTORY/backup-$IMAGENAME-$MODEL-$TSTAMP.zip . -i /$MODEL/*
- cd
- fi
- if [ -f "$MAINDEST/rootfs.bin" -a -f "$MAINDEST/kernel.bin" -a -f "$MAINDEST/imageversion" -a -f "$MAINDEST/noforce" ] ; then
- echo " "
- echo "BACK-UP MADE SUCCESSFULLY IN: $MAINDEST\n"
- else
- echo " "
- echo "Image creation FAILED!\n"
- fi
- fi
- umount /tmp/bi/root
- rmdir /tmp/bi/root
- rmdir /tmp/bi
- rm -rf "$WORKDIR"
- sleep 5
- END=$(date +%s)
- DIFF=$(( $END - $START ))
- MINUTES=$(( $DIFF/60 ))
- SECONDS=$(( $DIFF-(( 60*$MINUTES ))))
- if [ $SECONDS -le 9 ] ; then
- SECONDS="0$SECONDS"
- fi
- echo "BACKUP FINISHED IN $MINUTES.$SECONDS MINUTES\n"
- exit
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement