[Frage]Fritzbox: crontab startet skript nicht richtig - was ist falsch?

phreichmuth

Neuer User
Mitglied seit
16 Mrz 2014
Beiträge
13
Punkte für Reaktionen
0
Punkte
0
Es geht mir weniger um die genaue Build-Umgebung, welche auf fritzmod.net genutzt wurde, als viel mehr darum zu verstehen, was Freetz ist und wie es funktioniert. Es wäre also möglich, so vorzugehen.
Ich verstehe absolut, was du mit den binären Dateien aus unbekannten Quellen sagen willst. Aber um Freetz zu nutzen, muss man es eben auch erst verstehen.

Nochmal, ihr habt mir sehr geholfen. Vielen Dank Leute. Vorerst ist mein Server wieder problemlos erreichbar. Werde mich bei Gelegenheit mal mit Freetz auseinandersetzten.
 

phreichmuth

Neuer User
Mitglied seit
16 Mrz 2014
Beiträge
13
Punkte für Reaktionen
0
Punkte
0
Hier noch meine beiden Skripte, damit der Eisbärin ihre Neugier gestillt ist.

Hier das Skript zum Starten und Stoppen des SSH-Server, installiert gemäss der Anleitung auf fritzmod.net (das Passwort muss allerdings auf der Fritzbox mittels passwd erstellt werden, nicht auf der Homepage):
Code:
#!/bin/sh

# HDD='ssh'     # ACHTUNG: unbedingt anpassen!
HDD_ABSOLUT='/var/media/ftp'  # $HDD
PASSWD='VYEj.I8bC04gs'
TEMP=/tmp

if [ $1 = start ]
then
    if ps | grep [d]ropbear > /dev/null
    then
        echo "Der SSH-Server Dropbear laeuft bereits."
    else
        while ! [ -d $HDD_ABSOLUT ] ; do sleep 5; done
 
        cp $HDD_ABSOLUT/ssh/busybox $TEMP
        cp $HDD_ABSOLUT/ssh/dropbearmulti $TEMP
        cp $HDD_ABSOLUT/ssh/sftp-server $TEMP
        chmod +x $TEMP/busybox
        chmod +x $TEMP/sftp-server
        chmod +x $TEMP/dropbearmulti
        $TEMP/busybox sed -e "/root:/s#^root:[^:]*:#root:$PASSWD:#" -i $TEMP/shadow
        ln -s $TEMP/dropbearmulti $TEMP/dropbearkey
        ln -s $TEMP/dropbearmulti $TEMP/dropbear
        if [ -f $HDD_ABSOLUT/ssh/dropbear_rsa_host_key ]
        then
            cp $HDD_ABSOLUT/ssh/dropbear_rsa_host_key $TEMP
        else
            $TEMP/dropbearkey -t rsa -f $TEMP/dropbear_rsa_host_key
            cp $TEMP/dropbear_rsa_host_key $HDD_ABSOLUT/ssh/
        fi
        if [ -f $HDD_ABSOLUT/ssh/dropbear_dss_host_key ]
        then
            cp $HDD_ABSOLUT/ssh/dropbear_dss_host_key $TEMP
        else
            $TEMP/dropbearkey -t dss -f $TEMP/dropbear_dss_host_key
            cp $TEMP/dropbear_dss_host_key $HDD_ABSOLUT/ssh/
        fi
        $TEMP/dropbear -p 22 -r $TEMP/dropbear_rsa_host_key -d $TEMP/dropbear_dss_host_key -0 -S $TEMP/sftp-server
        echo "Der SSH-Server Dropbear wurde gestartet."
    fi
elif [ $1 = stop ]
then
    if ps | grep [d]ropbear > /dev/null
    then
        kill $(ps | grep [d]ropbear | cut -d " " -f 2)
        rm $TEMP/busybox
        rm $TEMP/dropbearmulti
        rm $TEMP/sftp-server
        rm $TEMP/dropbearkey
        rm $TEMP/dropbear
        rm $TEMP/dropbear_rsa_host_key
        rm $TEMP/dropbear_dss_host_key
        echo "Der SSH-Server Dropbear wurde gestopt."
    else
        echo "Der SSH-Server Dropbear laeuft nicht."
    fi
else
    echo "Dropbear SSH-Server"
    echo
    echo "Kein Parameter angegeben."
    echo "Server starten: dropbear start"
    echo "Server stopen: dropbear stop"
fi
Und hier mein eigenes Skript für einen beliebigen DynDNS-Dienst. Es speichert in einer Log-Datei auch gleich jeweils die neue IP-Adresse, falls man das später noch mal braucht:
Code:
#!/bin/sh

mypath="$(dirname "$(realpath "$0")")"


# letze IP-Adresse auslesen
if [ -f $mypath/myip.log ]
then
    lastIPv4=$(tail -n 1 $mypath/myip.log | grep -E -o "([0-9]{1,3}[\.]){3}[0-9]{1,3}") # IPv4
else
    lastIPv4="0.0.0.0" # IPv4
fi

# momentane IP-Adresse auslesen
currentIPv4=$(cat /var/run/onlinestat | grep IPADDR | sed 's/IPADDR\ //') # IPv4

if ! [ "$currentIPv4" = "$lastIPv4" ] # nur IPv4 wird verwendet
then
    echo -n $(date) >> $mypath/myip.log
    # update IPv4-Eintrag
    echo -n "   IPv4:" $currentIPv4 >> $mypath/myip.log
    IPv4_updatefeedback=$($mypath/curl --anyauth -u <username>:<password> "http://dyn.dns24.ch/update?hostname=<domain>&type=A&data="$currentIPv4 2>/dev/null)
    if [ ${#IPv4_updatefeedback} -gt 500 ]
    then
        IPv4_updatefeedback="Error 401: Authentication required!"
    fi
    echo "   IPv4 update:" $IPv4_updatefeedback >> $mypath/myip.log
    echo "IPv4-Adresse:" $currentIPv4 ", IPv4 update:" $IPv4_updatefeedback
else
    echo "IPv4-Adresse hat nicht geaeändert. Der DynDNS-Dienst muss nicht upgedatet werden."
fi
Zusammen mit Curl in einen Ordner schmeissen, fertig.
Und jetzt seht ihr auch von welcher Log-Datei ich geredet hab, myip.log.

Alles keine Hexerei - wenn man alles richtig macht... ;-)
 

PeterPawn

IPPF-Urgestein
Mitglied seit
10 Mai 2006
Beiträge
13,563
Punkte für Reaktionen
1,168
Punkte
113
Und hier mein eigenes Skript für einen beliebigen DynDNS-Dienst. Es speichert in einer Log-Datei auch gleich jeweils die neue IP-Adresse, falls man das später noch mal braucht:
Dann erlaube ich mir auch noch mal eine neugierige Frage ... was genau funktioniert denn bei Deinem DynDNS-Anbieter beim Update nicht, wenn Du den eingebauten DynDNS-Client mit "<user-defined>" benutzt? An der URL kann ich nichts besoonderes erkennen ... es müßte also andere Gründe geben.
 

phreichmuth

Neuer User
Mitglied seit
16 Mrz 2014
Beiträge
13
Punkte für Reaktionen
0
Punkte
0
Wenn ich die Daten so in der Konfig-Maske der Fritzbox eintrage, kommt vom Server immer die Meldung zurück, dass die Authentifikation nicht funktioniert. Gemäss AVM unterstützt die Fritzbox Apache Digest Authentifizierung nicht. Gleichzeitig führt die Fritzbox das Update mit vorangestelltem Benutzername und Passwort nur, wenn es über https läuft, anderfalls wird nichts gemacht. Und dns24.ch unterstützt kein https bis jetzt (was ich heutzutage auch nicht wirklich verstehen kann, ist aber so). Bei Seiten sind von den Problemen informiert und schauen, was sie tun können.
 

PeterPawn

IPPF-Urgestein
Mitglied seit
10 Mai 2006
Beiträge
13,563
Punkte für Reaktionen
1,168
Punkte
113
Ok, ich finde dann tatsächlich die Digest-Authentication fast noch bemerkenswerter als die fehlende HTTPS-Unterstützung. Und leider kann der DynDNS-Client tatsächlich keine Digest-Auth ... aber das trifft vermutlich auf viele Embedded-Systems zu, weil es - außer libcurl und die ist ja nicht gerade das, was man "slim" nennen würde und als erstes für ein Embedded-Device in Erwägung ziehen sollte - fast keine C-Libraries gibt, die Digest-Auth auch beherrschen. Mich würde ja glatt mal interessieren, welche Router das tatsächlich beherrschen. Meine spontane Google-Suche brachte erst einmal kein Ergebnis. Das heißt sicherlich nicht, daß es keine gibt - aber ein potentieller Kunde hätte es offenbar auch nicht so leicht, da das richtige Gerät zu finden, wenn er nach diesem Kriterium suchen sollte. Meine Versuche, mir mal die Homepage von dns24.ch anzusehen, sind leider kläglich gescheitert, da lädt praktisch nichts bzw. man kann jedes einzelne Bit mit Handschlag begrüßen. Schade, hätte mich mal interessiert ...

So verblüfft es zwar schon etwas, wenn ein DynDNS-Dienst gerade diese (zwar standardisierte, aber ziemlich ungebräuchliche) Authentifizierung nutzt und dann noch ausschließlich, denn HTTPS mit Basic - sogar sicherer als Digest mit dem alten MD5 - kann der Dienst ja offenbar nicht, wie Du schreibst. Aber es erklärt natürlich einiges ... wenn der Server auch noch TLS machen müßte, würde er sich wahrscheinlich noch "behäbiger" anfühlen und wir wollen ja keine Klischees in Bezug auf die Schweiz bedienen. :mrgreen:
 

phreichmuth

Neuer User
Mitglied seit
16 Mrz 2014
Beiträge
13
Punkte für Reaktionen
0
Punkte
0
Deine Klischees kannst du gleich wieder einpacken, scheint ein technisches Problem zu sein. Ich erreiche die Homepage gerade gar nicht, aber ebenso freetz.org nicht.
dns24.ch ist ansonsten ganz performant. Das tolle daran ist, dass man die Record-Einträge vollständig selber konfigurieren kann, also A-Record, AAAA, MX etc. Und mittels domain name *.xxxxx.yy kann man so viele Hosts ins Netz bringen, wie man will. Und das alles gratis und die Server stehen in der Schweiz (soweit ich das ermitteln konnte)... Es gibt ja leider kaum mehr gratis dynDNS-Dienste mehr.
 

PeterPawn

IPPF-Urgestein
Mitglied seit
10 Mai 2006
Beiträge
13,563
Punkte für Reaktionen
1,168
Punkte
113
Deine Klischees kannst du gleich wieder einpacken, scheint ein technisches Problem zu sein.
Ich bin ein Gewohnheitstier und habe oft genug mit Leuten aus der Zentralschweiz (Zürich, Luzern, Schwyz und dem was so dazwischen liegt) zu tun ... da hege und pflege ich meine Klischees, Liebgewordenes (und es ist immer ein Körnchen Wahrheit dabei) muß man nicht ohne weiteres über Bord werfen. Das war ja auch nur ein Joke ... daher vermutlich der Smiley.

Wenn es nur ein technisches Problem ist, dann ist es ja gut.

freetz.org ist jedenfalls erreichbar (sowohl SVN als auch Trac), wenn dann stimmt etwas mit dem Routing zwischen Dir und dem STRATO-RZ nicht. Ich erreiche sie von hier (über DTAG) problemlos und auch die zwei Icinga-Services auf meinem Monitor-Server (der steht aber tatsächlich im demselben AS und damit praktisch um die Ecke des Freetz-Servers bzw. von dessen Host), mit denen die Freetz-Services überwacht werden, haben heute noch keinen Ausfall gesehen.
 

eisbaerin

IPPF-Urgestein
Mitglied seit
29 Sep 2009
Beiträge
10,031
Punkte für Reaktionen
681
Punkte
113
damit der Eisbärin ihre Neugier gestillt ist
Danke!
Da ich so ähnliche selber gemacht habe, interessiert es mich immer ob es nicht noch besser geht.

z.B. läuft meine dyndns.sh ohne cron, dafür mit einer while-do Schleife und sleep 300.

Aber durch deine Frage habe ich mich auch mal mit cron beschäftigt und kann es in Zukunft auch mal anwenden.
Hatte gar nicht gedacht, daß es so einfach mit der busybox geht.
Ich dachte immer das geht nur mit freetz.
Die Seite bei Radislav muß relativ neu sein, oder ist mir lange nicht aufgefallen.
 
Zuletzt bearbeitet:

sanctum

Neuer User
Mitglied seit
28 Dez 2011
Beiträge
7
Punkte für Reaktionen
0
Punkte
1
Hallo zusammen,
ich möchte die gespeicherten Videos meiner Außenkamera zeitgesteuert auf einen externen Server verschieben, welcher bereits in der FB7490 als NAS angelegt ist.
In den Kamera-Einstellungen ist bereits der Zielpfad des NAS eingeben, was auch funktionmiert, nur leider wird das aufgenommene Video nicht vollkommen aufgenommen, bzw. es ruckelt anschließend beim Abspielen, da das Speichern direkt im Netz geschieht und somit unbrauchbar ist.
Deshalb möchte ich das Video zuerst auf der FB7490 auf einen angeschlossenen USB-Stick speichern und zu einem späteren Zeitpunkt (1x täglich) auf das NAS verschieben, bevor der Speicher auf dem Stick voll wird.
Wer kann mir zeigen, wie man so ein Vorhaben umsetzen könnte?
Muß leider eingestehen, daß ich mich mit Linux nicht wirklich auskenne.

Danke für Eure Hilfe!

Gruß
Sanctum
 

sanctum

Neuer User
Mitglied seit
28 Dez 2011
Beiträge
7
Punkte für Reaktionen
0
Punkte
1
Hallo fda89,

was genau meinst du hier mit "mv VON NACH" ?

gr
 

fda89

Mitglied
Mitglied seit
31 Aug 2020
Beiträge
373
Punkte für Reaktionen
52
Punkte
28
Mit dem Befehl verschiebt man die Datei/Verzeichnis von "VON" nach "NACH"
 

berndy2001

Mitglied
Mitglied seit
26 Nov 2005
Beiträge
404
Punkte für Reaktionen
5
Punkte
18

hermann72pb

IPPF-Promi
Mitglied seit
6 Nov 2005
Beiträge
3,674
Punkte für Reaktionen
9
Punkte
38
Ich würde es auch sehr anzweifeln, dass das Speichern über SAMBA auf einem USB-Stick auf einer FritzBox deutlich schneller funktionieren wird, als an einer NAS... Eigentlich sollte man sich das komplette System in Gänze anschauen und dort nach Schwachstellen suchen. Dies würde uns aber hier sehr weit Richtung OffTopic führen. Vor allem hier im FREETZ-Bereich. Und wenn man sich mit Linux nicht wirklich auskennt (kann man schon an der Grundsatzdiskussion zu "mv" erkennen), ist man hier im FREETZ-Unterforum eigentlich falsch unterwegs. Denn FREETZ ganz ohne Linux-Kenntnisse kann gar nicht funktionieren.
 

sanctum

Neuer User
Mitglied seit
28 Dez 2011
Beiträge
7
Punkte für Reaktionen
0
Punkte
1
Hallo berndy2001,

danke für dein Feedback.
Ja, der mv-Befehl war mir bereits bekannt, jedoch fehlte mir der Zusammenhang zu meiner ursprünglichen Frage, nämlich den Vorgang automatisiert und nicht manuell durchführen zu wollen.
Nein, ich habe noch kein "freetz" auf meiner FB7490 und ja das Speichern der Video-Dateien lokal auf einem an der Box angeschlossenen USB-Stick funktioniert deutlich besser, als wenn die Dateien auf den externen Server sofort und direkt gespeichert werden.
Um jedoch zuerst lokal die Datei auf dem USB-Stick und anschließend zeitgesteuert (Intervall) auf den Server zu schieben, komme ich um ein "freetz"-mod nicht drumrum, richtig?
Gibt es vielleicht schon eine entsprechende Anleitung für blutige Anfänger wie mich hierzu?
Was sollte ich vor solch einem Schritt unbedingt beachten und sicherstellen, damit ich mir meine FB nicht völlig zerschieße und falls doch, wie ich wieder auf den ursprünglichen Stand zurückfinde?

Danke für jede weitere Hilfestellung.
 

hermann72pb

IPPF-Promi
Mitglied seit
6 Nov 2005
Beiträge
3,674
Punkte für Reaktionen
9
Punkte
38
Man braucht dafür nicht zwingend FREETZ, aber irgendeine Modifizierung der Box wirst du dafür schon mal benötigen. Ohne kommst du heutzutage nicht mehr mit einer aktuellen Firmware auf die Box, um da irgendwelchen nativen Linux-Befehle in Shell auszuführen (und dazu gehört z.B. mv). Eine Modifikation auf die Box mit aktueller Firmware zu bekommen ist auch heutzutage nicht besonders leicht und nicht gerade anfängerfreundlich. Ja, es gibt hier und anderswo im Netz verstreut Anleitungen zum Modifizieren der Box und zum Bauen eines FREETZ-Images, die Betonung liegt aber auf VERSTREUT. Wenn du mit der Hoffnung hier unterwegs bist, in 5 Minuten alles zu verstehen und hinzu noch ohne Linux-Kenntnisse: Vergiss es. Du wirst mehrere Tage und mehrere Anlaufversuche dafür brauchen. Wenn du dafür bereit bist und es gerne angehen willst, können wir dich dabei begleiten, setzt aber voraus, dass du selbst viel autodidaktisch lernst und nicht nach jedem "mv" hier fragst.
Mit dem, dass das Speichern auf einem USB-Stick schneller läuft, als auf einer Festplatte eines NAS, glaube ich dir erstmal nicht. Aber wie ich schon vorher schrieb: Um die Schwächen von deinem System zu identifizieren, muss man es erstmal komplett kennen. Und diese Disussion würde hier zu weit führen. Die Verwendung einer FritzBox für solche Zwecke mag ich persönlich heutzutage auch sehr stark zu bezweifeln. Immerhin ist eine FritzBox primär eine kleine Telefonanlage und ein Router nebenbei. Mit den Aufgaben ist sie schon sehr gut beschäftigt und sie noch mit anderen Zusatzaufgaben zu "beladen" muss echt gut bedacht sein. Aber dann wären wir wieder bei der Diskussion zum Gesamtsystem und das wäre hier OffTopic. Es gibt heutzutage viele Systeme, die deine Aufgaben gut meistern könnten, ohne dafür deine FritzBox zu "überladen". Ich nenne dir nur ein Paar Beispiele: RaspberryPi, QNAP-119-NAS bestückt mit einer 1TB-SSD, Odroid-Systeme (auch mit einer SSD), und, und, und. Bei den Systemen arbeitest du zum Teil mit Debian-Derivaten, was wartungstechnisch und pakettechnisch deutlich besser supported und gewartet wird. Mehr sage ich aber zum Thema "Gesamtsystem" nicht.
 

FischersFreetz

Neuer User
Mitglied seit
22 Feb 2019
Beiträge
80
Punkte für Reaktionen
3
Punkte
8
Hallo, ...
ich möchte die gespeicherten Videos meiner Außenkamera zeitgesteuert auf einen externen Server verschieben, welcher bereits in der FB7490 als NAS angelegt ist. ...
Bevor ich vielleicht weiter helfen könnte, ist mir erstmal nicht klar, was
  1. "externer Server" hier konkret bedeutet (ein Cloud-Speicher vielleicht?, oder ...?) und
  2. wie dieser in der FB7490 bereits "als NAS angelegt" wurde.
... und nicht nach jedem "mv" hier fragst. ...
Ich bin der Meinung, dass man auch einmal nach "mv" fragen könnte. Wem es nicht bedeutend genug ist, um darauf zu antworten, kann es doch stilschweigend übersehen.
 
Zuletzt bearbeitet:

sanctum

Neuer User
Mitglied seit
28 Dez 2011
Beiträge
7
Punkte für Reaktionen
0
Punkte
1
Hallo Herrman,
danke für deine Schilderungen und dass du dir die Zeitgenommen hast, mir so ausführlich zu antworten.

@FischersFreetz:
Ja die Video-Daten werden über die FB weitergeleitet zu einem Cloud-Speicher, welcher als NAS in der FB angelegt wurde.
Die sauberste Lösung wäre jedoch, Herrmann bereits geschrieben hat, eine eigene lokale NAS, welche dann natürlich immer standby laufen müßte.

Ich wünsche Euch allen einen guten Rutsch und ein friedvolles und gesundes 2021
 

hermann72pb

IPPF-Promi
Mitglied seit
6 Nov 2005
Beiträge
3,674
Punkte für Reaktionen
9
Punkte
38
Wie gesagt, wenn du Richtung NAS gehen willst, empfehle ich dir z.B. QNAP 119, die du gerne z.B. mit 1TB SSD bestücken kannst. Die QNAP kriegst du bestimmt günstig in der Bucht, wenn du etwas Geduld mitbringst. 1TB SSD hatte ich vor kurzem da reingesetzt. Das System scheint damit zu laufen. Qie QNAP 119 ist zwar schon relativ alt, wird dennoch immer noch mit den Firmwares supported. Drauf ist auch Linux (allerdings kein Debian) und man kann es auch relativ leicht erweitern, wenn dir die Standard-Pakete nicht ausreichen. SSD würde ich in deinem Fall empfehlen, weil du sonst die Festplatte nicht zum "Schlafen" kriegst. Ist auch für deinen Fall eher kontraproduktiv, weil die Platte zum Aufwachen eine gewisse Zeit von 2-3 Sekunden braucht. SSD wäre lautlos und ohne bewegliche Mechanik. Bzgl. Eignung einer SSD für eine solche NAS gibt es geteilte Meinungen, ich würde es aber riskieren. Denn die Preise für SSDs bewegen sich mittlerweile in dem Rahmen, wo man sowas wagen könnte. QNAP 119 war aber ursprünglich nicht für SSDs gedacht.
Extern kannst du per eSATA (3gbit/s) eine echte Festplatte anschließen, auf die du dann die Daten von der SSD dauerhaft ablegen kannst. QNAP 119 war relativ sparsam und sollte vom Verbrauch irgendwo zwischen 6 und 10 Watt liegen. Wenn es dich interessiert, kann ich es mal bei mir im Verbund mit der SSD messen. Übertragungsraten waren damals mit 200-300 MBit/s angegeben (wenn man dem Hersteller traut). Die NAS war damals auf jeden Fall nicht die Schlechteste, was die Übertragungsraten angeht.
Und "mv" und Co. kannst du übrigens darauf auch sehr gut machen.
Guten Rutsch!
 

FischersFreetz

Neuer User
Mitglied seit
22 Feb 2019
Beiträge
80
Punkte für Reaktionen
3
Punkte
8
Jetzt ist auch klar, warum deine Video-Dateien nicht ordnungsgemäß gespeichert werden. Es ist nämlich so, dass deine Video-Daten nicht direkt in die Cloud weitergeleitet, sondern vom "WebDav-Client" der Fritzbox erstmal zwischengespeichert werden. Da deine Video-Daten wohl aber kontinuierlich gesendet werden, erkennt dieser Prozeß kein Ende der Video-Datei und kommt beim Upload ins "Stottern".
Um welche Großenordnungen von Video-Daten handelt es sich denn eigentlich? (? MByte, ? GByte)

Ob ein einmaliger (nächtlicher) Cron-Job die Anschaffung eines (realen) NAS rechtfertigt, musst du (sanctum) entscheiden. Das Geld und die einhergehenden "Ressourcen" würde ich sparen, denn dein ursprüngliches Vorhaben ist via Cron-Job auf der Fritzbox durchaus realisierbar.
Ich praktiziere Ähnliches auf meiner Fritzbox 7490. (Ich kopiere neue Medien-Dateien von einem Mediaplayer auf einen USB-Stick an der Fritzbox. Dort werden sie verschlüselt, um sie dann auf den Online-Speicher zu verschieben.)

Wenn du dieses Vorhaben verfolgen willst, sind folgende grundlegenden Etappen zu absolvieren:
  1. Schaffung einer Freetz-Build-Umgebung (z.B. in einer virtuellen Maschine in Virtualbox)
  2. Erstellen einer angepassten Firmware für die Fritzbox via Freetz
  3. Flashen dieser Firmware (Das wird wohl der kniffligste Teil.)
  4. Erstellen eines passenden Skriptes zum Upload deiner Video-Dateien
Ein weiterer Nebeneffekt dieses Weges ist der Erwerb beachtenswerter "digitaler Kompetenz". :cool: