Hi an alle,
ich versuche seit längerem ein Skript zum Laufen zu bekommen, dass mir meine Bouquets sichert und mit einem Timestamp versieht. Das Skript vommt aus einem anderen Forum, ist jedoch sowohl für Enigma1 als auch Enigma2 geschrieben. Ich habe es in /usr/script hochgeladen und auch mit den 755 Rechten ausgestattet. Des Weiteren habe ich das .sh-Skript mit dem notepad++ geschrieben und im UNIX-Format gespeichert. Also auch hier alles gut soweit. Allerdings bekomme ich laufend folgende Fehlermeldung:
root@dm800se:/usr/script# ./pack_bq_new.sh
-sh: ./pack_bq_new.sh: not found
Das Skript sieht folgendermaßen aus:
Spoiler anzeigen
#!/bin/sh
#
# creates Bouquets ans Settings file. version: 0.5
#
#
# Enigma Version ("enigma1" oder "enigma2").
ENIGMA="enigma2"
# Farbliche Text-Ausgabe verwenden? 0 = Nein , 1 = Ja
COLORED="0"
#
## Ende der Konfiguration
#
TEMPdir=/tmp
enigma1dir="/var/tuxbox/config/enigma/"
enigma2dir="/etc/enigma2/"
Files2Pack2="satellites.xml terrestrial.xml cables.xml timezone.xml"
Files2Pack1="$Files2Pack2 *.tv *.radio lamedb blacklist settings whitelist userbouquet.* services"
PakFiles=""
ST="time.txt"
[ -z "$COLORED" ] && COLORED=0
#- functions
#error handling
_error() {
if [ $1 -gt 0 ]; then
[ -z "$2" ] && message="Es ist ein Fehler aufgetreten"
message=$2
if [ "$COLORED" = 1 ]; then
echo -e "\033[1;31;40m$message\033[0m"
echo -e "\033[1;31;40mAbbruch\033[0m"
else
echo "$message"
echo "Abbruch"
fi
exit 1
fi
}
#collect files to pack
collectFiles() {
# source dir = $1
# Files2Pack = $2
cd $1
FILES=$(ls)
for file in $FILES; do
validfile=0
for wantedfile in $2; do
crapfile=0
if [ "$file" = "$wantedfile" ]; then
case $file in
*_bak) crapfile=1 ;;
*_org) crapfile=1 ;;
esac
[ "$crapfile" = 0 ] && validfile=1
fi
done
[ "$validfile" = 1 ] && PakFiles="$PakFiles $1$file"
done
}
#- main code
#falls ENIGMA leer -> versuche ENIGMA version zu ermitteln
if [ -z "$ENIGMA" ]; then
[ -d "$enigma1dir" ] && ENIGMA="enigma1"
[ -d "$enigma2dir" ] && ENIGMA="enigma2"
if [ -z "$ENIGMA" ]; then
_error 1 "Kann die ENIGMA Version nicht ermitteln! Bitte manuell im Script festlegen!"
fi
else
# prüfe gültige ENIGMA einstellung
if [ "$ENIGMA" != "enigma1" ] && [ "$ENIGMA" != "enigma2" ]; then
_error 1 "Die Script Einstellung ENIGMA ist fehlerhaft!\n Gueltige Einstellung: ENIGMA=\"enigma1\" oder ENIGMA=\"enigma2\""
fi
fi
# Name der gepackten Bouquets Datei
BQ="${ENIGMA}.tar.gz"
[ "$ENIGMA" = "enigma1" ] && srcDIR=$enigma1dir
[ "$ENIGMA" = "enigma2" ] && srcDIR=$enigma2dir
#zu packende dateien ermitteln: enigma1 & enigma2
collectFiles "$srcDIR" "$Files2Pack1"
#zu packende dateien ermitteln: enigma2 (/etc/tuxbox/)
[ "$ENIGMA" = "enigma2" ] && collectFiles "/etc/tuxbox/" "$Files2Pack2"
#dateien zum packen vorbereiten
echo "Bereite Dateien zum packen vor.."
mkdir -p $TEMPdir/$ENIGMA
cp -rf $PakFiles $TEMPdir/$ENIGMA/
_error $? "Es ist ein Fehler aufgetreten (zu packende dateien kopieren)"
#archive erstellen
echo "Erstelle Archive.."
cd $TEMPdir
tar -cz $ENIGMA > $TEMPdir/$BQ
_error $? "Es ist ein Fehler aufgetreten (archive erstellen)"
[ ! -s "$TEMPdir/$BQ" ] && _error 1 "Es ist ein Fehler aufgetreten (erstelles archive hat 0 bytes)"
rm -rf $TEMPdir/$ENIGMA/
echo "Archive $TEMPdir/$BQ erfolgreich erstellt ($(echo `du -sh $TEMPdir/$BQ` | cut -d' ' -f 1))"
#time.txt erzeugen (format: unixtimestamp)
TIMESTAMP=$(date +%s)
echo $TIMESTAMP > $TEMPdir/$ST
echo "$TEMPdir/$ST erfolgreich erstellt ($TIMESTAMP)"
exit 0
Ich verwende das Daily Image vom 24.02.2017 auf einer DM800se.
Irgendwelche Ideen?
ich versuche seit längerem ein Skript zum Laufen zu bekommen, dass mir meine Bouquets sichert und mit einem Timestamp versieht. Das Skript vommt aus einem anderen Forum, ist jedoch sowohl für Enigma1 als auch Enigma2 geschrieben. Ich habe es in /usr/script hochgeladen und auch mit den 755 Rechten ausgestattet. Des Weiteren habe ich das .sh-Skript mit dem notepad++ geschrieben und im UNIX-Format gespeichert. Also auch hier alles gut soweit. Allerdings bekomme ich laufend folgende Fehlermeldung:
root@dm800se:/usr/script# ./pack_bq_new.sh
-sh: ./pack_bq_new.sh: not found
Das Skript sieht folgendermaßen aus:
#!/bin/sh
#
# creates Bouquets ans Settings file. version: 0.5
#
#
# Enigma Version ("enigma1" oder "enigma2").
ENIGMA="enigma2"
# Farbliche Text-Ausgabe verwenden? 0 = Nein , 1 = Ja
COLORED="0"
#
## Ende der Konfiguration
#
TEMPdir=/tmp
enigma1dir="/var/tuxbox/config/enigma/"
enigma2dir="/etc/enigma2/"
Files2Pack2="satellites.xml terrestrial.xml cables.xml timezone.xml"
Files2Pack1="$Files2Pack2 *.tv *.radio lamedb blacklist settings whitelist userbouquet.* services"
PakFiles=""
ST="time.txt"
[ -z "$COLORED" ] && COLORED=0
#- functions
#error handling
_error() {
if [ $1 -gt 0 ]; then
[ -z "$2" ] && message="Es ist ein Fehler aufgetreten"
message=$2if [ "$COLORED" = 1 ]; then
echo -e "\033[1;31;40m$message\033[0m"
echo -e "\033[1;31;40mAbbruch\033[0m"
else
echo "$message"
echo "Abbruch"
fi
exit 1
fi
}
#collect files to pack
collectFiles() {
# source dir = $1
# Files2Pack = $2
cd $1
FILES=$(ls)
for file in $FILES; do
validfile=0
for wantedfile in $2; do
crapfile=0
if [ "$file" = "$wantedfile" ]; then
case $file in
*_bak) crapfile=1 ;;
*_org) crapfile=1 ;;
esac
[ "$crapfile" = 0 ] && validfile=1
fi
done
[ "$validfile" = 1 ] && PakFiles="$PakFiles $1$file"
done
}
#- main code
#falls ENIGMA leer -> versuche ENIGMA version zu ermitteln
if [ -z "$ENIGMA" ]; then
[ -d "$enigma1dir" ] && ENIGMA="enigma1"
[ -d "$enigma2dir" ] && ENIGMA="enigma2"
if [ -z "$ENIGMA" ]; then
_error 1 "Kann die ENIGMA Version nicht ermitteln! Bitte manuell im Script festlegen!"
fi
else
# prüfe gültige ENIGMA einstellung
if [ "$ENIGMA" != "enigma1" ] && [ "$ENIGMA" != "enigma2" ]; then
_error 1 "Die Script Einstellung ENIGMA ist fehlerhaft!\n Gueltige Einstellung: ENIGMA=\"enigma1\" oder ENIGMA=\"enigma2\""
fi
fi
# Name der gepackten Bouquets Datei
BQ="${ENIGMA}.tar.gz"
[ "$ENIGMA" = "enigma1" ] && srcDIR=$enigma1dir
[ "$ENIGMA" = "enigma2" ] && srcDIR=$enigma2dir
#zu packende dateien ermitteln: enigma1 & enigma2
collectFiles "$srcDIR" "$Files2Pack1"
#zu packende dateien ermitteln: enigma2 (/etc/tuxbox/)
[ "$ENIGMA" = "enigma2" ] && collectFiles "/etc/tuxbox/" "$Files2Pack2"
#dateien zum packen vorbereiten
echo "Bereite Dateien zum packen vor.."
mkdir -p $TEMPdir/$ENIGMA
cp -rf $PakFiles $TEMPdir/$ENIGMA/
_error $? "Es ist ein Fehler aufgetreten (zu packende dateien kopieren)"
#archive erstellen
echo "Erstelle Archive.."
cd $TEMPdir
tar -cz $ENIGMA > $TEMPdir/$BQ
_error $? "Es ist ein Fehler aufgetreten (archive erstellen)"
[ ! -s "$TEMPdir/$BQ" ] && _error 1 "Es ist ein Fehler aufgetreten (erstelles archive hat 0 bytes)"
rm -rf $TEMPdir/$ENIGMA/
echo "Archive $TEMPdir/$BQ erfolgreich erstellt ($(echo `du -sh $TEMPdir/$BQ` | cut -d' ' -f 1))"
#time.txt erzeugen (format: unixtimestamp)
TIMESTAMP=$(date +%s)
echo $TIMESTAMP > $TEMPdir/$ST
echo "$TEMPdir/$ST erfolgreich erstellt ($TIMESTAMP)"
exit 0
Ich verwende das Daily Image vom 24.02.2017 auf einer DM800se.
Irgendwelche Ideen?