Pruefe ob ein Update der Bouquets vorhanden ist..rm: can't remove '/tmp/time.txt': No such file or directory
Es ist kein Update vorhanden!
root@dm800se:/etc/cron/scripts#
#!/bin/sh
#
# packt Settings in *.tar.gz und erstellt time.txt Version 1.1
#
#
# Hier angeben um welchen Setting es handelt. (astra_e1, astra_e2, hotbird_e1 oder hotbird_e2)
# Enigma Verison enigma1 oder enigma2
ENIGMA="enigma2"
SETTING="astra_e2"
REMOTE="/media/daten/www/settings/$SETTING"
# Soll eine eMail bei Fehler gesendet werden? 1 = Ja , 0 = Nein
eMailFehler="1"
# Soll eine eMail bei I.O. gesendet werden? 1 = Ja , 0 = Nein
eMailIO="1"
# Soll ipc.cfg eMail Einstellungen verwendet werden? 1 = Ja , 0 = Nein
IPCeMail="1"
# eMail Einstellungen wenn IPCeMail="0" ist!
SMTPFROM=""
SMTPTO=""
SMTPSERVER=""
SMTPUSER=""
SMTPPASS=""
SMTPTLS=""
#
## Ende der Konfiguration
#
if [ "$IPCeMail" = 1 ]; then
. /var/emu/conf/ipc.cfg
fi
if [ "$SMTPTLS" = 1 ]; then
OPT="-o tls=yes"
fi
TEMPdir=/tmp/settings
enigma1dir="/media/daten/www/settings/original/$SETTING/"
enigma2dir="/media/daten/www/settings/original/$SETTING/"
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
echo "$message"
echo "Abbruch"
if [ "$eMailFehler" = 1 ]; then
sendEmail -f $SMTPFROM -t $SMTPTO -u "Fehler $SETTING packen!" $OPT -s $SMTPSERVER -xu $SMTPUSER -xp $SMTPPASS -m Hallo Daniel, heut am $(date) konnte die $SETTING Settings nicht gepackt werden. $message
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
[ "$ENIGMA" = "enigma2" ] && collectFiles "srcDIR" "$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 (ersteltes archive hat 0 bytes)"
echo "Archive $TEMPdir/$BQ erfolgreich erstellt ($(echo `du -sh $TEMPdir/$BQ` | cut -d' ' -f 1))"
if [ "$eMailIO" = 1 ]; then
sendEmail -f $SMTPFROM -t $SMTPTO -u "$SETTING packen erfolgreich!" $OPT -s $SMTPSERVER -xu $SMTPUSER -xp $SMTPPASS -m Hallo Daniel, heut am $(date) konnte die $SETTING Settings erfolgreich gepackt werden.
fi
#time.txt erzeugen (format: unixtimestamp)
TIMESTAMP=$(date +%s)
echo $TIMESTAMP > $TEMPdir/$ST
echo "$TEMPdir/$ST erfolgreich erstellt ($TIMESTAMP)"
cp -rf /$TEMPdir/$BQ $REMOTE
cp -rf /$TEMPdir/$ST $REMOTE
exit 0
[/COLOR][/FONT]#!/bin/sh
#
# Pruefung ob geaenderte Dateien auf dem Server. Version 1.1
# Settings CCcam.cfg get_bq.sh
# Fuer Crontab Server
BENUTZER="client1 client2 client3"
SATe1="astra_e1 hotbird_e1"
SATe2="astra_e2 hotbird_e2"
# Setzt Namen der Benutzer
for name in $BENUTZER; do
cccam="/media/daten/www/$name/CCcam.cfg"
cccam_time="/media/daten/www/$name/time_ccc.txt"
script="/media/daten/www/$name/script/get_bq.sh"
script_time="/media/daten/www/$name/script/time_bq.txt"
TIMESTAMP=$(date +%s)
if [ -f "$cccam_time" ]; then
# Prueft ob die bearbeiten CCcam.cfg neuer ist als die cccam_time
if [ $(stat -c %Y $cccam) -gt $(stat -c %Y $cccam_time) ] ; then
rm -r $cccam_time
echo $TIMESTAMP > $cccam_time
echo "$cccam_time erfolgreich erstellt ($TIMESTAMP)"
else
echo "Kein aktualisierung noetig! CCcam.cfg für $name"
fi
# Prueft ob die bearbeitet get_bq.sh neuer ist als time_bq.txt
if [ $(stat -c %Y $script) -gt $(stat -c %Y $script_time) ] ; then
rm -r $script_time
echo $TIMESTAMP > $script_time
echo "$script_time erfolgreich erstellt ($TIMESTAMP)"
else
echo "Kein aktualisierung noetig! get_bq.sh für $name"
fi
else
echo $TIMESTAMP > $cccam_time
echo "$cccam_time nicht gefunden! $cccam_time erfolgreich erstellt ($TIMESTAMP)"
fi
done
for sate1 in $SATe1; do
e1="/media/daten/www/settings/original/$sate1/services"
e1_time="/media/daten/www/settings/$sate1/time.txt"
TIMESTAMP=$(date +%s)
# Prueft ob die bearbeite Settings (e1) neue ist als die time.txt
if [ $(stat -c %Y $e1) -gt $(stat -c %Y $e1_time) ] ; then
echo "Starte pack_$sate1.sh"
/usr/sbin/pack_$sate1.sh
else
echo "Kein aktualisierung noetig für $sate1"
fi
done
for sate2 in $SATe2; do
e2="/media/daten/www/settings/original/$sate2/lamedb"
e2_time="/media/daten/www/settings/$sate2/time.txt"
TIMESTAMP=$(date +%s)
# Prueft ob die bearbeite Settings (e2) neue ist als die time.txt
if [ $(stat -c %Y $e2) -gt $(stat -c %Y $e2_time) ] ; then
echo "Starte pack_$sate2.sh"
/usr/sbin/pack_$sate2.sh
else
echo "Kein aktualisierung noetig für $sate2"
fi
done
exit 0
[FONT=Verdana, Arial, Tahoma, Calibri, Geneva, sans-serif][COLOR=#333333]
#!/bin/sh
#
# Pruefung ob Bouquets Update vorhanden. Version 1.2.1
# Script fragt einmal ob Updatet erwuenscht, wenn Nein dann erst wieder wenn Update vorhanden.
#
# Enigma Version ("enigma1" oder "enigma2").
# Die SERVERurl auf die Adresse eures Webservers umändern, wo die gepackte Bouquets Datei liegt
SERVERurl="ftp://192.168.11.3"
# Der Port eures Webservers (standard: 80)
SERVERport="21"
# Das Verzeichnis in dem die Bouquets Datei auf dem Webserver liegt
SERVERdir="hotbird_e2"
# Benutzername zum Zugriff auf den Webserver (leer lassen falls nicht vorhanden)
USERNAME="dream"
# Password zum Zugriff auf den Webserver (leer lassen falls nicht vorhanden)
PASSWORD="Hi7+-3Gs!=2013DB"
# timelu.txt auf Dreambox
timelu="timelu.txt"
# Datei mit der Zeit des letzten Updates die vom Server geladen wird
ST="time.txt"
# Ob eine Ausgabe bei Kein Update und Fehlern gemacht werden soll 0 = Nein , 1 = Ja
AUSGABE="0"
# Dauerhaft Abfrage auf der Dreambox? 0 = Nein (Abfrage 15 Sekunden) , 1 = Ja
# Abfrage ob Update Boquets Update durchgefuehrt werden soll
ABFRAGE="1"
# Ob VPN benutzt werden 0 = Nein , 1 = Ja
VPN="0"
# Update Script Ordner und Datei
get_bqdir="/usr/script"
get_bqfile="get_bq.sh"
#
## Ende der Konfiguration
#
#VPN Verbindung aufbauen
if [ "$VPN" = 1 ]; then
echo "VPN Verbindung wird aufgebaut"
/usr/script/vpn.sh start & sleep 30
else
echo ""
fi
#prepare url
case $SERVERurl in
[hH][tT][tT][pP]*|[fF][tT][pP]*)
URLprot="$(echo $SERVERurl | cut -d ":" -f 1)://"
URL=$(echo $SERVERurl | cut -d ":" -f 2 | tr -d "//")
;;
*)
URL=$SERVERurl
;;
esac
if [ ! -z "$USERNAME" ]; then
if [ -z "$PASSWORD" ]; then
_error 1 "Die Script Einstellung USERNAME ist gesetzt aber PASSWORD ist leer!"
fi
URL="$USERNAME:$PASSWORD@$URL"
fi
[ ! -z "$SERVERport" ] && URL="$URL:$SERVERport"
[ ! -z "$URLprot" ] && URL=$URLprot$URL
TEMPdir=/tmp
WGETo="-q"
#- functions
#aufräumen
_cleanup() {
rm -r $TEMPdir/$ST
}
#error handling
_error() {
if [ $1 -gt 0 ]; then
[ -z "$2" ] && message="Es ist ein Fehler aufgetreten" || message=$2
echo "$message"
echo "Abbruch"
if [ "$AUSGABE" = 1 ]; then
#Bildschirmnachricht bei ein Fehler
wget -O /dev/null "http://localhost:80/web/message?text=Verbindung%20wird%20beendet%20wegen%20eines%20Fehlers!&type=1&timeout=20"
else
echo ""
fi
#VPN Verbindung wegen eines Fehlers abbauen
if [ "$VPN" = 1 ]; then
echo "VPN Verbindung wird wegen eines Fehlers abgebaut"
/usr/script/vpn.sh stop
else
echo ""
fi
exit 1
fi
}
#downloaden von time.txt
downtimetxt() {
#Downloaden von time.txt vom Server
wget $WGETo $URL/$SERVERdir/$ST
_error $? "Es ist ein Fehler aufgetreten (download $ST)"
#prüfen ob download erfolgreich
if [ ! -f "$TEMPdir/$ST" ]; then
_error 1 "Es ist ein Fehlr aufgetreten (download $ST)"
fi
#Speichern des Inhalts von time.txt in einer Variablen timeluZS
timeluZS=$(cat $TEMPdir/$ST | head -n1 | tail -n1)
_error $? "Es ist ein Fehler aufgetreten (auslesen von $TEMPdir/$ST)"
}
echo "Pruefe ob ein Update der Bouquets vorhanden ist.."
cd $TEMPdir
#prüfen ob das script schon mal genutzt wurde und /etc/timelu.txt überhaupt vorhanden ist
if [ -f "/etc/timelu.txt" ]; then
#vor dem download sicherstellen das die datei nicht vorhanden ist
_cleanup
#download von time.txt vom Server
downtimetxt
#Speichern des Inhalts von vorhanden timelu.txt in einer Variablen
timelu1=$(cat /etc/timelu.txt | head -n1 | tail -n1)
if [ $timelu1 -lt $timeluZS ]; then
#Abfrage ob Update abgeprochen werden soll
#Abfgrabe ob Dauerhaft abfrage oder nur für 15 Sekunden
if [ "$ABFRAGE" = 1 ]; then
wget -O /dev/null "http://localhost:80/web/message?text=Eine%20neu%20Senderlisten%20steht%20zum%20Update%20bereit!%20Soll%20Update%20ABGEBROCHEN%20werden?&type=0"
else
wget -O /dev/null "http://localhost:80/web/message?text=Eine%20neu%20Senderlisten%20steht%20zum%20Update%20bereit!%20Soll%20Update%20ABGEBROCHEN%20werden?&type=0&timeout=15"
fi
while [ -z "$answer" ]; do
answer=$(wget -O - 'http://localhost:80/web/messageanswer?getanswer=now' | egrep -o 'YES|NO')
sleep 1
done
if [ "$answer" = NO ];then
wget -O /dev/null "http://localhost:80/web/message?text=Update%20gestartet!%20Kann%20mehrer%20Minuten%20dauern!&type=1&timeout=30"
$get_bqdir/$get_bqfile
else
cp -r $TEMPdir/$ST /etc/$timelu
fi
else
echo "Es ist kein Update vorhanden!"
if [ "$AUSGABE" = 1 ]; then
#Bildschirmnachricht für kein Update vorhanden
wget -O /dev/null "http://localhost:80/web/message?text=Es%20ist%20kein%20Update%20vorhanden!&type=1&timeout=20"
else
echo ""
fi
#VPN Verbindung wird beendet
if [ "$VPN" = 1 ]; then
echo "VPN Verbindung wird abgebaut"
/usr/script/vpn.sh stop
else
echo ""
fi
fi
else
#Abfrage ob Update abgeprochen werden soll
#Abfgrabe ob Dauerhaft abfrage oder nur für 15 Sekunden
if [ "$ABFRAGE" = 1 ]; then
wget -O /dev/null "http://localhost:80/web/message?text=Eine%20neu%20Senderlisten%20steht%20zum%20Update%20bereit!%20Soll%20Update%20ABGEBROCHEN%20werden?&type=0"
else
wget -O /dev/null "http://localhost:80/web/message?text=Eine%20neu%20Senderlisten%20steht%20zum%20Update%20bereit!%20Soll%20Update%20ABGEBROCHEN%20werden?&type=0&timeout=15"
fi
while [ -z "$answer" ]; do
answer=$(wget -O - 'http://localhost:80/web/messageanswer?getanswer=now' | egrep -o 'YES|NO')
sleep 1
done
if [ "$answer" = NO ];then
wget -O /dev/null "http://localhost:80/web/message?text=Update%20gestartet!%20Kann%20mehrer%20Minuten%20dauern!&type=1&timeout=30"
$get_bqdir/$get_bqfile
else
cp -r $TEMPdir/$ST /etc/$timelu
fi
fi
exit 0
Es ist ein Fehler aufgetreten (zu packende dateien kopieren)
Abbruch
root@dm8000:/etc/cron/scripts# ./pack_astra_e2.sh
Bereite Dateien zum packen vor..
BusyBox v1.19.4 (2013-05-02 11:34:24 CEST) multi-call binary.
Usage: cp [OPTIONS] SOURCE DEST
Copy SOURCE to DEST, or multiple SOURCE(s) to DIRECTORY
-a Same as -dpR
-R,-r Recurse
-d,-P Preserve symlinks (default if -R)
-L Follow all symlinks
-H Follow symlinks on command line
-p Preserve file attributes if possible
-f Overwrite
-i Prompt before overwrite
-l,-s Create (sym)links
Es ist ein Fehler aufgetreten (zu packende dateien kopieren)
Abbruch
Wir verwenden Cookies und ähnliche Technologien für folgende Zwecke:
Akzeptieren Sie Cookies und diese Technologien?
Wir verwenden Cookies und ähnliche Technologien für folgende Zwecke:
Akzeptieren Sie Cookies und diese Technologien?