[Info] Update-Check über den neuen AVM-Service

Das liest sich wie ein Folgefehler aus einem falschen Auschecken ... eigentlich sollte an der Datei in Zeile 104 kein "\r\n" hängen - die Existenz von $'\r' in der Zeile legt das aber nahe.

Hier hilft vermutlich die Beschäftigung mit dem Unterschied bei den "Zeilenenden" zwischen DOS/Windows und "dem Rest der Welt".
 
Mein Problem hat sich erledigt. Der Fehler trat auf, weil ich das Skript mit Windows Editor gespeichert hatte (offenbar tatsächlich ein Problem in Zusammenhang Windows/Linux). Mit notepad++ ließ es sich editieren, ohne dass Probleme auftraten.
 
Gibt es eigentlich ne Möglichkeit, das bei einer neuen Version ein Mail z.B. per /usr/bin/mail versendet wird?
 
entweder die gewünschte Mail-Befehl in Skript einbauen

oder Return-Code (bei 0 liegt Update vor) nach Skriptausführung auswerten:
Code:
if [ "$?" -eq 0 ]
then
        /usr/bin/mail -s "newer version found" -t  [email protected] .............
fi
 
Hallo,

ich brauche nochmal Unterstützung. Ich nutze Windows 10 mit der Ubuntu Bash und einer Fritzbox7490. Allerdings bekomme ich immer nur den link zur Version 6.60 angezeigt, egal ob ich Public 0 oder 1 mitgebe.

Woran kann das liegen?

Bin für Hinweise dankbar.
 
Ab Post #68 lesen, dann solltest du es auch hinbekommen;)
 
Hallo PeterPawn,

Danke als Erstes für Deine Arbeit, auch wenn ich unter macOS (Sierra 10.12.2) noch nicht zum Ziel gelangt bin. Das Script stoppt bereits recht früh mit einer Fehlermeldung von 'mktemp':

Code:
[COLOR=#000000][FONT=Menlo]iMac:juischeckupdate user$ ./juischeckupdate 192.168.1.1[/FONT][/COLOR]
[COLOR=#000000][FONT=Menlo]mktemp: illegal option -- p[/FONT][/COLOR]
[COLOR=#000000][FONT=Menlo]usage: mktemp [-d] [-q] [-t prefix] [-u] template ...[/FONT][/COLOR]
[COLOR=#000000][FONT=Menlo]       mktemp [-d] [-q] [-u] -t prefix [/FONT][/COLOR]
[COLOR=#000000][FONT=Menlo]Error reading jason info from FRITZ!Box device.
iMac:juischeckupdate user$[/FONT][/COLOR]

Was kann ich hier tun?

Gruß,
BanditDD
 
das Programm juischeckupdate erwartet folgende prerequisites:
Code:
# prerequisites:                                                                                      #
# xmllint, bash, configuration file, FRITZ!Box router (usually), [COLOR=#0000ff]mktemp[/COLOR], wget, dd, sed, base64        #

sofern diese Programme für MacOS nicht verfügbar sind, dann wäre Emulation angesagt, d.h. direkt in das Skript als subfunction einbauen:
Code:
#######################################################################################################
#                                                                                                     #
# subfunctions                                                                                        #
#                                                                                                     #
#######################################################################################################
#                                                                                                     #
# make temporary directory or file, emulate 'mktemp' if it's missing                                  #
#                                                                                                     #
#######################################################################################################
[COLOR=#0000ff]mktmp[/COLOR]()
{
        local name="$(mktemp $* 2>/dev/null)"
        if [ $? -eq 127 -o -z $name ]; then # mktemp is missing, emulation needed
                local dir tmp="$TMP"
                [ "$1" = "-d" ] && dir=1 || dir=0
                [ "$1" = "-p" ] && tmp="$2"
                [ -z "$tmp" ] && tmp="/var/tmp"
                name="$tmp/$(date +%s)_$$"
                name="${name}_$(dd if=/dev/urandom bs=8 count=1 2>/dev/null | base64 | sed -e "s|[^A-Za-z0-9]*||g")"
                if [ $dir -eq 1 ]; then
                        [ -d "$name" ] && name="${name}_$(dd if=/dev/urandom bs=8 count=1 2>/dev/null | base64 | sed -e "s|[^A-Za-z0-9]*||g")"
                        mkdir -p "$name" 2>/dev/null
                else
                        touch $name 2>/dev/null
                fi
        fi
        printf "$name"
}
#######################################################################################################

Quelle:
https://github.com/PeterPawn/modfs/blob/master/bin/scripts/check_update
 
das Programm juischeckupdate erwartet folgende prerequisites:
Code:
# prerequisites:                                                                                      #
# xmllint, bash, configuration file, FRITZ!Box router (usually), [COLOR=#0000ff]mktemp[/COLOR], wget, dd, sed, base64        #

sofern diese Programme für MacOS nicht verfügbar sind, dann wäre Emulation angesagt, d.h. direkt in das Skript als subfunction einbauen:

'mktemp' ist sehr wohl verfügbar - die Ausschrift

mktemp: illegal option -- p
usage: mktemp [-d] [-q] [-t prefix] [-u] template ...
mktemp [-d] [-q] [-u] -t prefix

wird schließlich durch den Aufruf von 'mktemp' erzeugt. Die Option -p mag das macOS-'mktemp' wohl nicht und damit bricht das Script ab ...

Gruß,
BanditDD
 
Zuletzt bearbeitet:
daher doch der Vorschlag, das externe Programm durch eine Skript-Interne Variante mktemp() mit allen Optionen "-p", ... zu ersetzen.
 
Wobei in der Emulation (die gibt es auch in mehreren Skripten und Varianten von mir im Repo) dann noch die Abfrage von rc=127 (command not found) gegen ein "true" zu tauschen wäre oder man läßt das erste "if" gleich weg ... die Option "-p" legt halt das Basisverzeichnis für die temporären Dateien fest und warum das in der (mehr in Richtung BSD gehenden) Variante von Apple wieder nicht vorhanden ist, weiß ich auch nicht. Leider sorgt aber eben die generelle Verfügbarkeit von "mktemp" für die Annahme, die Option würde unterstützt.
 
Habe mich nach eine Weile an das Script gewagt.
Brauchte erst mal einige Zeit (Erforschen einiger Linuxgrundlagen) um ein testscript zum laufen zu bekommen.
Mein Testscript bekam ich dann unter root@TEST-PC:/mnt/c/Users/PC-Test# mit chmod +x test.sh und ./test.sh zum laufen.
Wenn ich Fritzuptade.sh laufen lasse bekomme ich folgende Meldung:
./Fritzupdate.sh: Zeile 104: Syntaxfehler beim unerwarteten Wort >>$'\r'<<
./Fritzupdate.sh: Zeile 104: append()

Habe folgendes Verzeichnis mit folgenden Inhalt angelegt: C:\Fritzupdate\test.sh
Wenn ich nun chmod +x /c/Fritzupdate/test.sh eingebe bekomme ich folgende Fehlermeldung .... Datei oder Verzeichnis nicht gefunden

Vielleicht kann jemand einen Linux Neuling etwas weiterhelfen.
Entschuldigt die vielleicht etwas "komische" Ausdrucksweise aber ich bin absoluter Neuling.

Gruß Klaus
 
Wenn ich Fritzuptade.sh laufen lasse bekomme ich folgende Meldung:
./Fritzupdate.sh: Zeile 104: Syntaxfehler beim unerwarteten Wort >>$'\r'<<
./Fritzupdate.sh: Zeile 104: append()

Fehlermeldung mit #80 identisch ? gelesen ?
root@VivoPC:/mnt/d# ./juischeckupdate.sh fritz.box 1 6.50
./juischeckupdate.sh: Zeile 104: Syntaxfehler beim unerwarteten Wort »$'\r'«
'/juischeckupdate.sh: Zeile 104: `append()

Lösung siehe #81, ff.
notepad++ und dann "Menü EDIT >> EOL Conversion >> UNIX/OSX Format"

Gut, dass es die SuFu gibt, oder "schreiben kann manchmal einfacher sein als lesen";
 
Zuletzt bearbeitet:
@Pokemon20021
Auf die Idee zu suchen kam ich gar nicht da ich der meinung war es ist ein Fehler meinerseits.
Trotzdem Danke für die nicht zwar freundliche aber hilfreiche Antwort.

Nun hänge ich an der nächsten Stelle:
"Missing configuration file"

Kann mir auch jemand sagen wie ich die Datei in einem Verzeichnis meiner Wahl ausführen kann ?? (chmod +x /c/Fritzupdate/Fritzupdate.sh geht leider nicht )

Gruß Klaus
 
Kann mir auch jemand sagen wie ich die Datei in einem Verzeichnis meiner Wahl ausführen kann ?? (chmod +x /c/Fritzupdate/Fritzupdate.sh geht leider nicht )

einfach mal statt "./Fritzupdate.sh" den Befehl "bash ./Fritzupdate.sh" eingeben
 
Zuletzt bearbeitet:
Du hast ja den Originalnamen der Datei von juischeckupdate.sh in Fritzupdate.sh geändert.
Dementsprechend muß natürlich auch das Config-File von juischeckupdate.conf nach Fritzupdate.conf umbenannt werden.

Joe
 
Zuletzt bearbeitet:
HIER einmal reinzuschauen, ist sicherlich niemals verkehrt ;)
 
Nun hänge ich an der nächsten Stelle:
"Missing configuration file"

könntest Du mal eine Datei juischeckupdate.conf bzw. Fritzupdate.conf mit folgendem Inhalt anlegen:
Code:
Box=[COLOR=#0000ff]192.168.178.1[/COLOR]
shift
Serial=[COLOR=#0000ff]000000000000[/COLOR]
shift
Version=[COLOR=#0000ff]113.06.50-00000[/COLOR]
shift
Name="[COLOR=#0000ff]FRITZ\\!Box\\ 7490[/COLOR]"
shift
HW=[COLOR=#0000ff]185[/COLOR]
shift
OEM=avm
shift
Lang=de
shift
Annex=B
shift
Country=049
shift
Public=1
shift
ggf. die Parameter an eigene Anforderungen anpassen.

Beispiel:
Code:
ubuntu-vm:~/YourFritz/tools$ [COLOR=#0000ff]bash ./juischeckupdate[/COLOR]
Found newer version : 113.06.60
URL=ftp://ftp.avm.de/fritz.box/fritzbox.7490/firmware/deutsch/FRITZ.Box_7490.113.06.60.image
ubuntu-vm:~/YourFritz/tools$
 
Zuletzt bearbeitet:
Nun bin ich schon bei Zeile 322: xmllint: Befehl nicht gefunden.

also bei einem Debian-Derivat (Ubuntu, ...) gebe ich immer "sudo apt-get -y install libxml2-utils" ein
und dann steht das Programm xmllint zur Verfügung.
 
Zuletzt bearbeitet:

Statistik des Forums

Themen
246,045
Beiträge
2,244,987
Mitglieder
373,451
Neuestes Mitglied
Ayzham
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.