USB-Stick über FTP nicht mehr beschreibar!

"Ordendliches" Herunterfahren/ Neustarten

@RalfFriedl

Danke für die flinke Hilfe.

Also so: stop.sh

Code:
#!/bin/sh

USBDEVICE=$(mount | grep /var/media/ftp/ | sed -e "s|^.*ftp/||g" -e "s/ .*$//")
# Alle rc-Skripte mit stop aufrufen
for pkg in $(cat /etc/static.pkg) crond telnetd webcfg swap; do
    /etc/init.d/rc.$pkg stop
done

# Signal an Programme, sich zu beenden
kill -TERM -1
# Den Programmen etwas Zeit geben, sich freiwillig zu beenden
# Zeit je nach Bedarf
sleep 2
# Alle Programme beenden, die trotzdem noch laufen.
kill -KILL -1
# swap ausschalten
/var/media/ftp/$USBDEVICE/sbin/busybox2 swapoff -a   [COLOR="Red"]# da Busybox 1.8.2 kein swapon/ off hat[/COLOR]
# alles unmounten
umount -a
[COLOR="Green"]# warten bis unmount erfolgt
sleep 5
reboot[/COLOR]

Aufruf mit

/var/media/ftp/Corsair-FlashVoyager-01/stop.sh & . . . ..Hm, besser aus'n tmp Verzeichniss der FB:confused:

Wie bekomme ich das vor getimten awaitreboot 0330 unter?
 
Zuletzt bearbeitet:
Indem Du das Warten und das Reboot trennst.
Code:
reboot -d $sec
# entspricht ungefähr
sleep $sec
reboot
# Also:
sleep $sec
stop.sh
reboot
Das "entspricht ungefähr" bezieht sich darauf, daß ein kill des "reboot -d" das reboot beendet, während ein kill des "sleep $sec" das sleep beendet und das reboot ausführt. Das läßt sich mit "sleep $sec && reboot" ändern.

Die Option -d beim reboot ist übrigens eine Busybox Eigenheit. Es wundert mich, daß die das eingebaut haben, normalerweise implementieren die keine Optionen, die sich leicht mit etwas Skript nachbbilden lassen. Besonders wenn es, wie in diesem Fall, Optionen sind, die im Original nicht enthalten sind und sogar im Konflikt mit dessen Optionen sind.
 
Denkfehler oder realisierbar

Hm, also jetzt komm ich ins grübeln oder hab jetzt nen totalen Denkfehler

sleep $sec für ein Tag = 86400 minus die Zeit für Runterfahren und Neustart bis Wiedererreichen des selben Code

Ich stelle mir ne präziesere Lösung vor, sowas wie

in debug.cfg
Code:
# Neustart um 03:30 Uhr
[COLOR="Red"]stop.sh [/COLOR]() {
local day=$((60*60*24))
[COLOR="red"]stop.sh [/COLOR]$(( ($(date -d $(date +%m%d$1%Y) +%s) - $(date +%s) + $day) % $day ))
}
sleep 360; [COLOR="red"]stop.sh & [/COLOR]0330 [COLOR="Blue"]# ergänzte stop.sh wie aus [URL="http://www.ip-phone-forum.de/showpost.php?p=1306827&postcount=21"]#21[/URL][/COLOR]

Irgendwie ist da nen Syntaxfehler verborgen:confused:
 
Zuletzt bearbeitet:
Das $sec oben steht für die Anzahl der Sekunden, die man warten will, ob mit sleep oder der Warte-Option von reboot. Also:
Code:
# statt
local day=$((60*60*24))
reboot -d $(( ($(date -d $(date +%m%d$1%Y) +%s) - $(date +%s) + $day) % $day ))
# so
local day=$((60*60*24))
sleep $(( ($(date -d $(date +%m%d$1%Y) +%s) - $(date +%s) + $day) % $day ))
stop.sh
reboot

In Deinem Beispiel kann ich auf Anhieb keinen Syntax-Fehler finden, aber Du definierst eine Funktion stop.sh, die sich selbst rekursiv aufruft, also vermutlich nicht das, was Du beabsichtigt hast.
 
@RalfFridel

jep! scheint zu funzen

Was aber nicht gefunden werden kann ist

Code:
# Alle rc-Skripte mit stop aufrufen
for pkg in $(cat /etc/static.pkg) crond telnetd webcfg swap; do
    /etc/init.d/rc.$pkg stop

in diesem Verzeichniss ist nur *click*.


Hast eine Idee?
 
Zuletzt bearbeitet:
Du schreibst hier im Freetz Forum. Dein Bild sieht nicht so aus, als hättest Du Freetz drauf. Dann gibt es auch die Dateien nicht.
 
stimmt, alles klärchen. Dann kann ich getrost

#21

rauslassen und nutze

Code:
#!/bin/sh
sleep 15
# Umgebungsvariable $USBDEVICE fuer USB-Stick
USBDEVICE=$(mount | grep /var/media/ftp/ | sed -e "s|^.*ftp/||g" -e "s/ .*$//")
sleep 15
kill -TERM -1
sleep 15
kill -KILL -1
sleep 15
if [ -f /var/media/ftp/$USBDEVICE/sbin/fboxswap.img ]
then
/var/media/ftp/$USBDEVICE/sbin/busybox2 swapoff /var/media/ftp/$USBDEVICE/sbin/fboxswap.img
fi
sleep 15
umount -a
sleep 15
reboot

Damit hat sich mit den Schreibrechten elegant erledigt
 
Sorry, hatte keine Zeit hier zu antworten.

Hab jetzt Vsftp auf meiner FB installiert (Freetz Stable 1.1), leider lässt es sich nicht starten (zumindest wird im Webinterface stopped angezeigt)!
Da ich auch über Samba nichts schreiben kann, liegt es wohl nicht am FTP-Server!

Was muss ich jetzt machen?
fr@nk-pcn hat ja eine FB ohne freetz?!

MfG
 
Wenn der AVM-FTP-Server gestartet ist, kann vsftpd nicht auf dem selben Port lauschen, ergo wird vsftpd nicht gestartet.
 
Danke, aber das Schreiben funktioniert leider immer noch nicht!
 
Zuletzt bearbeitet:
Ist das Dateisystem auf deinem Stick noch immer FAT32? ext3 wäre besser.;)
 
Leider kann ich dann den Stick nicht mal mehr vom PC aus beschreiben!
Hab gparted und die Konsole unter Ubuntu 8.10 verwendet, aber jedesmal das selbes Ergebnis?!
Hier noch der Log von Filezilla beim Löschen einer einzelnen Datei:
Code:
Trace:	CFtpControlSocket::SendNextCommand()
Trace:	CFtpControlSocket::DeleteSend()
Befehl:	DELE '**.r02
Trace:	CFtpControlSocket::OnReceive()
Antwort:	550 **.r02: Invalid argument.
Trace:	CFtpControlSocket::DeleteParseResponse()
Trace:	CFtpControlSocket::ResetOperation(2)
Trace:	CControlSocket::ResetOperation(2)

MfG
 
Dann hat der Stick wohl nen Fehler.
 
Leider gehts auch mit 2 anderen Sticks nicht!
 
Wie? Das Beschreiben am PC? Da wende dich dann mal an den Hersteller.
 
Nein, das Beschreiben über die FB!

EDIT:
Hab im AVM Webinterface vergessen Schreibrechte zusetzen *peinlich*
Trotzdem Danke!
 
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.