have remade Gemini backup script cause it has litle mistakes in bouquet patching section
and didn't do things which i need and did a lot of things which i dont need
chmod 755 /var/script/Gemini_E1_backup_userscript.sh
Bash
#!/bin/sh
### configuration
ENIGMA_ON=1
SERVICES_ON=1
GEMINI_CONFIG_ON=1
# !! Doesn't work with parameters where '/' presented in value string
GEMINI_CONFIG_LINES=""act_cam" "def_cam""
SKINS_ON=1
#SKIN_FILES=""josh3d" "chk_" "gemini_blueline""
SKIN_FILES=""josh3d""
LOCALES_ON=1
LOCALE_CODES=""lv" "ru""
SCRIPTS_ON=1
SCRIPT_FILES=""Gemini_E1_backup_userscript.sh" "Mount_userscript.sh" "reload_emu_names" "SetAudio_Left-Right_userscript""
CAMD3_ON=1
NEWCS_ON=1
MGCAMD_ON=1
USER_ON=1
USER_FILES=""/var/etc/ether-wake.conf" "/usr/lib/tuxbox/plugins/etherwake.""
# end
###################
foo="$0"
crntNameExt=${foo##*/}
crntNameShort=${crntNameExt%.*}
TAR_NAME="$crntNameShort"_`date +%Y.%m.%d`
DirTmp="/tmp/"
DirEtc="/var/etc/"
DirTuxbox="/var/tuxbox/"
DirEnigma="$DirTuxbox""config/enigma/"
DirBin="/var/bin/"
DirKeys="/var/keys/"
DirScript="/var/script/"
DirShare="/var/share/"
add_to_tarline () {
if [ -e "$i" ]; then
files2tar="$files2tar $i"
echo "$i"
echo "$i">>"$LogFile"
else
echo "!!! NOT FOUND: $i"
echo "!!! NOT FOUND: $i">>"$LogFile"
fi
}
print_bt_2_log () {
echo ""
echo "">>"$LogFile"
echo "$BT:"
echo "$BT:">>"$LogFile"
}
AUTORELOAD=0 files2tar=""
DM7020=0
if grep -qs 7020 /proc/bus/dreambox; then DM7020=1 DirShare="/usr/share/"; fi
InstalShFile="$DirBin"n_addoninstall.sh
echo "#!/bin/sh">"$InstalShFile"
echo "">>"$InstalShFile"
LogFile="$DirTmp$crntNameShort"_log.txt
echo "$DirTmp$TAR_NAME">"$LogFile"
echo "">>"$LogFile"
rm -rf "$DirTmp$TAR_NAME".tar.gz
if [ $ENIGMA_ON -ne 0 ]; then
BT="ENIGMA"
print_bt_2_log
strFiles=""
if [ $DM7020 -eq 1 ]; then strFiles=""/etc/network/interfaces" ""$DirEtc"resolv.conf""; fi
for i in "$DirEnigma"config "$DirEnigma"timer* "$DirEtc"host* "$DirEtc"automount.conf $strFiles; do
add_to_tarline
done
AUTORELOAD=1
fi
if [ $SERVICES_ON -ne 0 ]; then
BT="SERVICES"
print_bt_2_log
strFiles="""$DirEtc"satellites.xml""
if [ $DM7020 -eq 1 ]; then strFiles="""$DirTuxbox"satellites.xml""; fi
for i in "$DirEnigma"services* "$DirEnigma"*bouquet* $strFiles; do
add_to_tarline
done
AUTORELOAD=1
fi
if [ $GEMINI_CONFIG_ON -ne 0 ]; then
BT="GEMINI_CONFIG"
print_bt_2_log
if [ $DM7020 -eq 1 ]; then DirStart="$DirEtc"; else DirStart="$DirTuxbox"config/; fi
for LINE in $GEMINI_CONFIG_LINES; do
Parameter=`grep "$LINE"= "$DirStart"Gemini.conf| tail -1| sed -e 's/.*=//'` #| sed -e 's/\//\\//'
if [ ! "$Parameter" ]; then
echo "!!! NOT FOUND Parameter: $LINE="
else
echo "$LINE=$Parameter"
echo "$LINE=$Parameter">>"$LogFile"
echo "## change parameter '"$LINE"' to '"$Parameter"' in Gemini config">>"$InstalShFile"
echo "#">>"$InstalShFile"
echo "if grep -qs 7020 /proc/bus/dreambox ; then">>"$InstalShFile"
echo " ConfigFile="/etc/Gemini.conf>>"$InstalShFile"
echo "else">>"$InstalShFile"
echo " ConfigFile=""$DirTuxbox"config/Gemini.conf>>"$InstalShFile"
echo "fi">>"$InstalShFile"
echo ""OldLine=\`grep ""$LINE""= \$ConfigFile\`"">>"$InstalShFile"
echo "if [ ! \"\$OldLine\" ]; then">>"$InstalShFile"
echo " echo $LINE=$Parameter>>\$ConfigFile">>"$InstalShFile"
echo "else">>"$InstalShFile"
echo " sed 's/$LINE=.*/$LINE=$Parameter/' \$ConfigFile>\$ConfigFile.c">>"$InstalShFile"
echo " rm \$ConfigFile">>"$InstalShFile"
echo " mv \$ConfigFile.c \$ConfigFile">>"$InstalShFile"
echo "fi">>"$InstalShFile"
echo "">>"$InstalShFile"
fi
done
AUTORELOAD=1
fi
if [ $SKINS_ON -ne 0 ]; then
if [ $DM7020 -eq 1 ]; then
DirStart="$DirShare""tuxbox/enigma/"
else
DirStart="$DirEnigma"
fi
for SKIN in $SKIN_FILES; do
BT=SKIN_"$SKIN"
print_bt_2_log
for i in "$DirStart"skins/"$SKIN"* "$DirStart"pictures/"$SKIN"*; do
add_to_tarline
done
done
fi
if [ $LOCALES_ON -ne 0 ]; then
BT="LOCALES"
print_bt_2_log
for LOCALE in $LOCALE_CODES; do
if [ $DM7020 -eq 1 ]; then FlagFile=""; else FlagFile=""$DirShare"countries/"$LOCALE"*"; fi
for i in "$DirShare"locale/"$LOCALE"* $FlagFile; do
add_to_tarline
done
done
fi
if [ $SCRIPTS_ON -ne 0 ]; then
BT="SCRIPTS"
print_bt_2_log
for SCRIPT in $SCRIPT_FILES; do
for i in "$DirScript$SCRIPT"*; do
add_to_tarline
done
done
fi
if [ $CAMD3_ON -ne 0 ]; then
BT="CAMD3"
print_bt_2_log
for i in "$DirBin"camd3* "$DirBin"pcamd* "$DirScript"camd3* "$DirKeys"camd3.* "$DirKeys"*services*; do
add_to_tarline
done
fi
if [ $MGCAMD_ON -ne 0 ]; then
BT="MGCAMD"
print_bt_2_log
for i in "$DirBin"mgcamd* "$DirScript"mgcamd* "$DirKeys"mg_* "$DirKeys"*.list; do
add_to_tarline
done
fi
if [ $NEWCS_ON -ne 0 ]; then
BT="NEWCS"
print_bt_2_log
if [ $DM7020 -eq 1 ]; then DirStart="/usr"; else DirStart="/var"; fi
for i in "$DirBin"newcs* "$DirTuxbox"config/newcs* "$DirStart"/lib/libcamdio.so.0; do
add_to_tarline
done
fi
if [ $USER_ON -ne 0 ]; then
BT="USER"
print_bt_2_log
for FILE in $USER_FILES; do
for i in "$FILE"*; do
add_to_tarline
done
done
fi
### autoreload sh file
if [ $AUTORELOAD -ne 0 ] && [ ! "$files2tar" = "" ]; then
BT="create "$InstalShFile""
print_bt_2_log
echo "killall -9 enigma">>"$InstalShFile"
echo "rm -rf "$InstalShFile"">>"$InstalShFile"
chmod 755 "$InstalShFile"
files2tar="$files2tar "$InstalShFile""
fi
### tar file
if [ ! "$files2tar" = "" ]; then
BT="create "$DirTmp$TAR_NAME".tar.gz"
print_bt_2_log
tar -czf "$DirTmp$TAR_NAME".tar.gz ${files2tar}
cp "$DirTmp$TAR_NAME".tar.gz /automount/nfs/"$TAR_NAME".tar.gz>/dev/null
cp "$LogFile" /automount/nfs/"$TAR_NAME".log.txt>/dev/null
fi
rm "$InstalShFile"
exit 0
Alles anzeigen
p.s.
can't understand difference between GP on dm500 and dm7020:
if i colect files with "/" before path then during arhiving comes so long operation "tar: Removing leading '/' from member names"
but if without then it happen faster on dm500 but doesn't work on dm7020 - comes message "FILE NOT FOUND".
also "Removing leading '/'" operation doesn't like filenames which are longer than 100 symbols
p.s.2
didn't found solution how to backup lines in Gemini.conf which contain symbols "/"
(but it isnt so important for now)