backup.sh
上传用户:huangj_j
上传日期:2020-03-06
资源大小:18404k
文件大小:3k
源码类别:

matlab例程

开发平台:

Unix_Linux

  1. #!/bin/sh
  2. cmdline=$1
  3. box=`cat /proc/bus/dreambox | grep ^type | sed -e 's/type=//'`
  4. if [ "$2" = "HDD" ] ; then
  5. device="/media/hdd"
  6. elif [ "$2" = "USB" ] ; then
  7. device="/media/usb"
  8. elif [ "$2" = "db" ] ; then
  9. device="dummy"
  10. else
  11. device=$2
  12. fi
  13. backup="$device/backup/$box"
  14. addons="$backup/ADD_ONS"
  15. v=/etc
  16. CanRestore()
  17. { mount | grep $device && exit 0
  18. exit 1
  19. }
  20. restore()
  21. { # $1 source $2 text $3 standard/addons dir
  22. if [ -n "$3" ] ; then
  23. source=$addons$1
  24. else
  25. source=$backup$1
  26. fi
  27. if [ ! -e $source ] ; then
  28. echo "File/Dir $source doesn't exist"
  29. return 1
  30. fi
  31. [ -d $source ] && [ -n "$3" ] && return 0
  32. target=`dirname $1`
  33. [ ! -d $target ] && echo "Making dir $target" && mkdir -p $target
  34. #echo "Restoring $source" 
  35. if [ -n "$2" ] ; then
  36. info=$2
  37. else
  38. info=$1
  39. fi
  40. if ! cp -af $source $target ; then
  41. echo "$info... Not Restored"
  42. return 1
  43. fi
  44. echo "$info.... Restored"
  45. return 0
  46. }
  47. backup()
  48. { if [ -d $backup ] ; then
  49.  echo "Removing previous backup..."
  50. rm -rf $backup
  51. fi
  52. echo "Creating new backup...."
  53. echo "Regular files..."
  54. mkdir -p $backup$v
  55. cd $v
  56. for i in samba cron rc.config fstab passwd enigma plimgr localtime tuxbox satellites.xml ; do
  57. [ -e $i ] && echo "Copying $v/$i" && cp -a $i $backup$v || echo "$v/$i... Not Backed up"
  58. done
  59. [ -e /usr/keys ] && echo "Copying /usr/keys" && cp -a /usr/keys $backup/usr || echo "/usr/keys... Not Backed up"
  60. [ -e /var/spool ] && echo "Copying /var/spool" && cp -a /var/spool $backup/var || echo "/var/spool... Not Backed up"
  61. echo "Add ons..."
  62. [ ! "`ls $v/tuxbox/installer/`" ] && echo "No Addons to Backup" && return 0 
  63. # Backup all contents.. The addons files were backupped during previous $v/tuxbox
  64. awk '{print $3}' $v/tuxbox/installer/* | tr -d '"' | while read file dummy ; do
  65. targetdir=`dirname $addons/$file`
  66. if [ -e $file -a ! -d $file ] ; then
  67. [ ! -d $targetdir ] && echo "Making dir <add ons>"`dirname $file` && mkdir -p $targetdir
  68. echo "Copying $file" && cp -p $file $targetdir || echo "$file... Not Backed up"
  69. fi
  70. done
  71. echo "Done !"
  72. }
  73. settings()
  74. { rm -rf $v/enigma
  75. restore $v/enigma
  76. restore $v/satellites.xml
  77. restore $v/fstab
  78. restore $v/passwd
  79. restore $v/tuxbox/terrestrial.xml
  80. restore $v/tuxbox/cables.xml "Settings"
  81. }
  82. samba()
  83. {
  84. restore $v/samba/smb.conf "Samba Config"
  85. }
  86.  
  87. cams()
  88. { restore $v/plimgr "Softcam Config"
  89. }
  90. keys()
  91. { restore /usr/keys "Keys"
  92. restore $v/tuxbox/scce "Scce"
  93. }
  94. spool()
  95. { restore $v/spool "Spool"
  96. }
  97. config()
  98. { restore $v/tuxbox/config "Complete Config"
  99. }
  100. enigma()
  101. { restore $v/enigma "Enigma"
  102. }
  103. addons()
  104. { # first copy back all addons files
  105. [ ! "`ls $backup$v/tuxbox/installer/`" ] && echo "No Addons to Restore" && return 0 
  106. restore $v/tuxbox/installer "Addons Files"
  107. # then all contents
  108. awk '{print $3}' $backup$v/tuxbox/installer/* | tr -d '"' | while read file dummy ; do
  109. restore $file "" true
  110. done
  111. echo "Addons Contents....  Restored"
  112. }
  113. reload_notify()
  114. { echo "---------"
  115. echo "Now choose Reload Settings"
  116. echo "in backup/restore menu"
  117. }
  118. reloadenigma()
  119. { killall -9 enigma
  120. #touch /tmp/.ReloadBouquets
  121. }
  122. [ -z "${device}" ] && echo "No Device Given" && exit 1
  123. case "${cmdline}" in
  124. "restoreq") CanRestore;;
  125. "backup") backup;;
  126. "settings") settings
  127. reload_notify;;
  128. "addons") addons;;
  129. "config") config;;
  130. "enigma") enigma;;
  131. "cams") cams;;
  132. "samba") samba;;
  133. "spool") spool;;
  134. "keys") keys;;
  135. "reloadenigma") reloadenigma;;
  136. "all") config
  137. settings
  138. spool
  139. keys
  140. addons
  141. cams
  142. samba
  143. reload_notify
  144. ;;
  145. esac