Cronjob für Etherwake / Ohne Freetz

Mach mal die Umlaute raus, daran scheinen die "not found-Fehler" zu liegen.

Dann führe mal nur den Inhalt der Schleife aus:
Code:
TOSTART=18:45

# sei etwas informativer 
set -x
# gew. Startzeit in Sekunden
START_S=$(date +%s -d "$TOSTART")
# akt. Zeit in Sekunden
NOW_S=$(date +%s)
# Startzeit schon vorbei?
if test "$START_S" -le "$NOW_S"; then
 # einen Tag dazu
 START_S=$(( START_S + 24*60*60))
fi
# Wie lange warten?
SEC_TO_SLEEP=$(( START_S - NOW_S ))

echo $SEC_TO_SLEEP

# und wieder normal
set +x

Jörg
 
Hallo,
also ich bin jetzt ganz durcheinander und verstehe jetzt nichts mehr. Ich weiß nicht was an dem Script falsch ist. Ich würde mich freuen wenn mir einer das Script einmal genau zeigt. Wenn mir einer die Scripts erstellen kann und ich dann nachgucken kann was ich falsch gemacht habe!

Server01 Mac Adresse : 00:C1:26:11:CA:01 jeder Tag 10 Uhr

Server02 Mac Adresse : 00:24:8C:51:B6:C0 jeden Sonntag um 20 Uhr



Ich muss diesen beiden Scripte doch dann nur in die debug.cfg via vi einfügen und speichern mit ! :wq . So wenn ich das gemacht habe waren sie nicht mehr da wenn ich die debug.cfg erneut geöffnet habe. Verstehe das nicht?

Ich würde mich riesig freuen wenn mir einer das mit den Scripts zeigen kann!
 
Verwende zum Bearbeiten der debug.cfg bitte nicht vi, sondern nvi. Ändere dann noch in den bereits geposteten Scripten die Umlaute (ä,ö,ü) in Nicht-Umlaute (z.B. ae, oe, ue) ab und lasse die Box noch einmal neu starten. Gibt es dann immer noch diese Fehlermeldungen?


Gruß,
Wichard
 
Hallo,
so sieht mein Script jetzt aus...

Code:
TOSTART=22:15
EW_IF=lan
MAC=00:24:8C:51:B6:C0
while true; do
# gewuenschte Startzeit in Sekunden
START_S=$(date +%s -d "$TOSTART")
# aktuelle Zeit in Sekunden
NOW_S=$(date +%s)
# Startzeit schon vorbei?
if test "$START_S" -le "$NOW_S"; then
# einen Tag dazu zaehlen
START_S=$(( START_S + 24*60*60))
fi
# Wie lange warten?
SEC_TO_SLEEP=$(( START_S - NOW_S ))
# Warten
sleep $SEC_TO_SLEEP
# Aktion ausfuehren
ether-wake -i $EW_IF $MAC
done &


Nach dem Reboot der FritzBox kommt folgendes auf der Console...

Code:
sleep: invalid number '-1271103032'
date: invalid date ''
sleep: invalid number '-1271103032'
date: invalid date ''
sleep: invalid number '-1271103033'
date: invalid date ''
sleep: invalid number '-1271103033'
date: invalid date ''
sleep: invalid number '-1271103033'
date: invalid date ''
sleep: invalid number '-1271103033'
date: invalid date ''
sleep: invalid number '-1271103033'
date: invalid date ''
sleep: invalid number '-1271103033'
date: invalid date ''
sleep: invalid number '-1271103033'
date: invalid date ''
sleep: invalid number '-1271103033'
date: invalid date ''
sleep: invalid number '-1271103034'
date: invalid date ''
sleep: invalid number '-1271103034'
date: invalid date ''
sleep: invalid number '-1271103034'
date: invalid date ''
sleep: invalid number '-1271103034'
date: invalid date ''
sleep: invalid number '-1271103034'
date: invalid date ''
sleep: invalid number '-1271103034'
date: invalid date ''
sleep: invalid number '-1271103034'
date: invalid date ''
sleep: invalid number '-1271103034'
date: invalid date ''
sleep: invalid number '-1271103035'
date: invalid date ''
sleep: invalid number '-1271103035'
date: invalid date ''
sleep: invalid number '-1271103035'
date: invalid date ''
sleep: invalid number '-1271103035'
date: invalid date ''
sleep: invalid number '-1271103035'
date: invalid date ''
sleep: invalid number '-1271103035'
date: invalid date ''
sleep: invalid number '-1271103035'
date: invalid date ''
sleep: invalid number '-1271103035'
date: invalid date ''
sleep: invalid number '-1271103035'
date: invalid date ''
sleep: invalid number '-1271103036'
date: invalid date ''
sleep: invalid number '-1271103036'
date: invalid date ''
sleep: invalid number '-1271103036'
date: invalid date ''
sleep: invalid number '-1271103036'
date: invalid date ''
sleep: invalid number '-1271103036'
date: invalid date ''
sleep: invalid number '-1271103036'
date: invalid date ''
sleep: invalid number '-1271103036'
date: invalid date ''
sleep: invalid number '-1271103036'
date: invalid date ''
sleep: invalid number '-1271103037'
date: invalid date ''
sleep: invalid number '-1271103037'
date: invalid date ''
sleep: invalid number '-1271103037'
date: invalid date ''
sleep: invalid number '-1271103037'
date: invalid date ''
sleep: invalid number '-1271103037'
date: invalid date ''
sleep: invalid number '-1271103037'

Wodran kann es liegen? Er sagt ja falsches Datum....
 
Hast du das ganze denn mal wie oben angefragt mal direkt eingegeben und ausgeführt?!? Mit welchem Ergebnis?

Jörg
 
Du meinst Telnetsitzung geöffnet dann mit Rechtsklick den Code

Code:
TOSTART=22:28
EW_IF=lan
MAC=00:24:8C:51:B6:C0
while true; do
# gewuenschte Startzeit in Sekunden
START_S=$(date +%s -d "$TOSTART")
# aktuelle Zeit in Sekunden
NOW_S=$(date +%s)
# Startzeit schon vorbei?
if test "$START_S" -le "$NOW_S"; then
# einen Tag dazu zaehlen
START_S=$(( START_S + 24*60*60))
fi
# Wie lange warten?
SEC_TO_SLEEP=$(( START_S - NOW_S ))
# Warten
sleep $SEC_TO_SLEEP
# Aktion ausfuehren
ether-wake -i $EW_IF $MAC
done &

eingefügt und Enter gedrückt?

Das hat geklappt ohne Fehlermeldungen Server startete genau um 22:28 Uhr! Aber warum gibt es Fehlermeldungen wenn ich das in der Debug.cfg drinstehen habe?
 
Versuche doch zum einen mal, die "Variablen" mit in die Schleife zu ziehen, zum anderen mache mal erst ein "sleep 300" oder so davor. Ich vermute, dass deine Box zu dem Zeitpunkt noch keine korrekte Uhrzeit hat, da könnten 5 Minuten Warten helfen...

Das muss eigentlich mit der Schleife zusammen im Hintergrund warten, sonst wird die debug.cfg nicht weiter ausgeführt.

Code:
while true; do
if [ $(date +%Y) -lt 2010 ]; then sleep 300; fi
TOSTART=22:28
EW_IF=lan
MAC=00:24:8C:51:B6:C0
# gewuenschte Startzeit in Sekunden
[...]


Jörg
 
Ok probieres es mal....

Code:
while true; do
if [ $(date +%Y) -lt 2010 ]; then sleep 300; fi
TOSTART=22:28
EW_IF=lan
MAC=00:24:8C:51:B6:C0
# gewuenschte Startzeit in Sekunden
START_S=$(date +%s -d "$TOSTART")
# aktuelle Zeit in Sekunden
NOW_S=$(date +%s)
# Startzeit schon vorbei?
if test "$START_S" -le "$NOW_S"; then
# einen Tag dazu zaehlen
START_S=$(( START_S + 24*60*60))
fi
# Wie lange warten?
SEC_TO_SLEEP=$(( START_S - NOW_S ))
# Warten
sleep $SEC_TO_SLEEP
# Aktion ausfuehren
ether-wake -i $EW_IF $MAC
done &

So korrekt?

Muss ich das im Jahr 2011 dann abändern?

Code:
if [ $(date +%Y) -lt 2010 ]; then sleep 300; fi
 
... nö, das Datum der FB ohne gestellte Uhr ist wohl auch im Jahre 2011 "kleiner 2010" ;-), das soll nur prüfen, ob die Uhr schon gestellt wurde und ansonsten erstmal warten...

Jörg
 
Mal noch einen Hinweiß, damit andere nicht so lange suchen wie ich:

Meine und eine andere FB7170 mit FW 29.04.80 machen nur sleep bis ungefähr 44000.
Ab sleep 45000 gleicht es einen sleep for ever !

Deshalb mußte ich das Script noch etwas ergänzen,
da ein ganzer Tag ja 86400 sec hat, zerhacke ich die in 10000'er Häpchen.

Zusätzlich prüfe ich jedes mal die aktuelle Zeit und berechne die Restzeit neu,
so läuft das Script auch nach einer Zeitumstellung genau.
Code:
...
SEC_TO_SLEEP=$(( START_S - NOW_S ))
[COLOR="Red"]while test "$SEC_TO_SLEEP" -gt 11000 ; do
	sleep 10000
	NOW_S=$(date +%s)
	SEC_TO_SLEEP=$(( START_S - NOW_S ))
done[/COLOR]
sleep $SEC_TO_SLEEP
...
Jetzt läuft der Cronjob sauber durch.

Ich benutze ihn allerdings für etwas anderes:
Ich sichere jede Nacht eine Log-Datei mit ftpput auf einen Server.
 
Zuletzt bearbeitet:
Code:
-sh: strace: not found
Den Befehl finde ich auch in keiner anderen busybox.

übrigens auch ein:
Code:
busybox1.11.3 sleep 45000
wurde nie beendet. Der Prozess steht nach 3 Tagen noch bei "ps".
 
Ich komme aber von Windoofs und habe noch die originale Firmware drauf.
Alles andere benutze ich als binary vom Stick. Wenn Du mir sagst wo ich die strace als binary her bekomme oder sie mir einer macht, dann kann ich es gerne ausprobieren.
 
Hallo Eisbaer(in),

geh auf der FritzBox in das Verzeichnis, wo du deine neue Busybox abgelegt hast.
Dann gib mal einfach das ein:
Code:
./busybox1.11.3
Es sollte jetzt die Version und alle verfügbaren Optionen erscheinen. Ist da das von dir gewünschte strace dabei??

Joe
 
Zuletzt bearbeitet:
Ja, das kenn' ich, habe ich auch schon für alle mir bekannten busyboxen gemacht:1.2.1/1.9.0/1.9.1/1.11.3/1.12.4/1.13.0/1.15.3

deshalb war ja von mir die Aussage in #32:

Den Befehl finde ich auch in keiner anderen busybox.
 
Ja, die läuft. Ich habe aber die Ausgabe mal in eine Datei gehängt.
Ich kann damit nichts anfangen, ich hoffe aber Du.

BtW: Ich suche noch eine tinyproxy die so vom Stick läuft.
Hat da einer einen Link oder kann die selber machen ?
 

Anhänge

  • log1.txt
    3.1 KB · Aufrufe: 5
Was ist denn das für eine Busybox? Bei mir funktioniert "1d" für einen Tag.
Dann versuch es mal damit:
Code:
strace -tt sleep 86400
Das sollte das gleiche tun, einen Tag bzw 86400 Sekunden warten.

PS:
Das heißt, es sollte tatsächlich einen Tag dauern, aber auch nicht länger.
Du kannst aber vorab schon mal die Ausgabe hier anzeigen, die bis zum Warten kommt.
 
Das ist die originale busybox1.8.2 von AVM. Die busybox1.11.3 kann "sleep 1d".

So, die erste Anzeige.
Und Du hoffst, daß nach 1d etwas passiert?
Na warten wir mal bis morgen...
 

Anhänge

  • log2.txt
    2.9 KB · Aufrufe: 2
Zuletzt bearbeitet:
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.