Merge branch 'vuplus_experimental' of code.vuplus.com:/opt/repository/dvbapp into...
[vuplus_dvbapp] / lib / python / Plugins / Extensions / BackupSuiteHDD / backup.sh
1 #!/bin/sh
2 ### Still somewhat experimental but I think it will work! [ Untill proven otherwise :-) ]
3
4 export LANG=$1
5 export SHOW="python /usr/lib/enigma2/python/Plugins/Extensions/BackupSuiteHDD/message.py $LANG"
6 export HARDDISK=1
7 $SHOW "message20"       #echo "Full back-up to the harddisk"
8 FREESIZE_0=0                            
9 TOTALSIZE_0=0
10 MEDIA=0
11 MINIMUN=33                              # avoid all sizes below 33GB
12 UBIFS="$(df -h /hdd | grep ubi0:rootfs | awk {'print $1'})" > /dev/null 2>&1
13 if [ "$UBIFS" = ubi0:rootfs ] ; then
14         HDD_MOUNT="$(ls -l /hdd | grep -o media/hdd)"
15                 if [ "$?" = "0" ] ; then
16                         HDD_MOUNT="$(echo "$HDD_MOUNT refers to the flash memory")" > /dev/null 2>&1
17                 else
18                         echo ""
19                 fi
20 else
21         touch /hdd/hdd-check > /dev/null 2>&1
22 fi
23 if [ -f /hdd/hdd-check ] ; then  
24         CHECKMOUNT1="$(df -h /hdd | tail -n 1 | awk {'print $6'})"
25         CHECKMOUNT2="$(df -h /hdd | tail -n 1 | awk {'print $5'})"
26         if [ "${CHECKMOUNT1:1:5}" = media ] ; then
27                 TOTALSIZE="$(df -h /hdd | tail -n 1 | awk {'print $2'})"
28                 FREESIZE="$(df -h /hdd | tail -n 1 | awk {'print $4'})" 
29                 MEDIA="$(df -h /hdd | tail -n 1 | awk {'print $6'})"
30         elif [ "${CHECKMOUNT2:1:5}" = media ] ; then
31                 TOTALSIZE="$(df -h /hdd | tail -n 1 | awk {'print $1'})"                
32                 FREESIZE="$(df -h /hdd | tail -n 1 | awk {'print $3'})" 
33                 MEDIA="$(df -h /hdd | tail -n 1 | awk {'print $5'})"
34         else
35                 TOTALSIZE="??"
36                 FREESIZE="??"
37                 MEDIA="unknown"
38         fi
39         echo -n " -> /hdd -> $MEDIA ($TOTALSIZE, "; $SHOW "message16" ; echo "$FREESIZE)"
40         backupsuite.sh /hdd
41         rm -f /hdd/hdd-check
42         sync
43 else
44         for candidate in /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1 /dev/sdf1
45         do
46                 if grep ${candidate} /proc/mounts > /dev/null ; then
47                         DISK="$( grep ${candidate} /proc/mounts | awk {'print $3'})" 
48                         MEDIA="$( grep -m1 ${candidate} /proc/mounts | awk {'print $2'})" 
49                         CHECK=${DISK:0:3}
50                         if [ $CHECK = "ext" ] ; then
51                                 TOTALSIZE="$(df -B 1073741824 ${candidate} | tail -n 1 | awk {'print $2'})" 
52                                 FREESIZE="$(df -B 1073741824 ${candidate} | tail -n 1 | awk {'print $4'})" 
53                                 if [ "$FREESIZE" -gt $FREESIZE_0 -a $TOTALSIZE -gt $MINIMUN ] ; then
54                                         BMEDIA=$MEDIA
55                                         TOTALSIZE_0=$TOTALSIZE
56                                         FREESIZE_0=$FREESIZE
57                                         echo "This is an absolete testfile" > $BMEDIA/HDD-TEST
58                                         if [ -f $BMEDIA/HDD-TEST ] ; then
59                                                 rm -f $BMEDIA/HDD-TEST
60                                         else
61                                                 #non-writeable disk
62                                                 MEDIA=
63                                         fi
64                                 fi
65                         fi
66                 fi
67         done
68         if  [ $MEDIA = "0" ] ; then
69                 $SHOW "message15"  #echo "No suitable media found"
70                 exit 0
71         else
72                 TOTALSIZE_0="$(df -h $BMEDIA | tail -n 1 | awk {'print $2'})"           
73                 FREESIZE_0="$(df -h $BMEDIA | tail -n 1 | awk {'print $4'})"
74                 echo -n " -> $BMEDIA ($TOTALSIZE_0, "; $SHOW "message16" ; echo -n "$FREESIZE_0)"
75                 backupsuite.sh $BMEDIA 
76                 echo "$HDD_MOUNT" > /tmp/BackupSuiteHDD.log
77                 sync
78         fi
79 fi