Custom USV?

Status
Für weitere Antworten geschlossen.

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Das volume wird als ge-crashed markiert und das hat beim nächsten Boot einen sogenannten Quotacheck zu folge. Der dauert je nach Grösse des volumes sehr lange und es scheint die DS bleibt beim booten hängen (sie macht aber den Quoatacheck). Leider repariert der Quotacheck keine Fehler im Dateisystem. Das müsste man auf der Konsole prüfen.
eigentlich sollte das volume nicht als abgestürzt markiert werden, wenn das Script sauber gefunzt hat. Dann sollte der SafeMode das Dateisystem eigentlich aushängen und damit sollte das volume dann eigentlich nicht als abgestürzt erkannt werden. Wenn ich bei meinem USV den Netzstrom trenne und die Batterien leerlaufen lasse, dann geht die DS bei mir in den SafeMode und wenn der Strom gekappt wird, dann wird beim restart das volume nicht als gecrashed erkannt.
Von dem her könnte es schon sein, dass du eventuell echte Fehler im Dateisystem hast.
 

Mario_m

Benutzer
Mitglied seit
22. Jan 2011
Beiträge
4
Punkte für Reaktionen
0
Punkte
0
Hab eine DS211.

So sieht mein Script aus:

Rich (BBCode):
#!/bin/sh
        SYSLOG "admin going to stop all services and umount all volumes."
       killall -9 mplayer
	 kill -9 `ps | grep ping | awk '{print $1}'`
       loop=0
       while [ $loop -lt 5 ]; do
               mplayer_pids=`pidof mplayer`
               if [ $? -ne 0 ]; then
                       break
               fi
               for pid in $mplayer_pids ; do
                       kill -9 $pid
               done
               loop=`expr $loop + 1`
       done
       for s in `ls /opt/etc/init.d/S* | sort -r`; do
               case "`basename $s`" in
               S02hotplugd.sh)
                       ;;
               *)
                       $s stop > /dev/null 2>&1
                       ;;
               esac
       done
       for s in `ls /usr/local/etc/rc.d/*`; do
               $s stop > /dev/null 2>&1
       done
       for s in `ls /usr/syno/etc/rc.d/S*.sh | sort -r`; do
               case "`basename $s`" in
               S02hotplugd.sh)
                       ;;
               *)
                       $s stop > /dev/null 2>&1
                       ;;
               esac
       done		
        for v in `grep volume /proc/mounts | awk '{print $2}'`; do
                umount -f $v
        done
        echo "7" > /dev/ttyS1
        sync; sync; sync;
		sleep 10;
		wget --delete-after "http://192.168.1.9/preset?switch=12&value=off"
        echo "Stop all services and umount all volumes"

Hier wird oben noch ein Script gekillt und unten ein wget ausgeführt. Ansonsten entspricht das dem Script auf der ersten Seite dieses Threads. Hab ich vielleicht etwas vergessen?
 

goetz

Super-Moderator
Teammitglied
Sehr erfahren
Mitglied seit
18. Mrz 2009
Beiträge
14.160
Punkte für Reaktionen
407
Punkte
393
Hallo,
damals ging das noch relativ unproblematisch, mit den neuen Firmwareversionen ist es schwerer geworden. Problem Nr.1 ist umount /volume1, wenn da noch irgend ein Prozess drauf zugreift funktioniert das nicht und der umount greift nicht. Strom weg und das Filesystem ist abgestürzt.
Was ist zu beachten:
- ipkg Installation auf Symlink umstellen
- ipkg ordentlich mit Start/Stop Scripten versorgen
- im Script die Zeile weit am Ende
Rich (BBCode):
umount -f $v
durch
Rich (BBCode):
/bin/umount -f $v
ersetzen. Allerdings ist das nur notwendig, wenn
which umount
/opt/bin/umount
als Rückgabewert hat. So klappt das gerade bei meiner 106, wobei nach Abschuß des Sriptes fängt sie an zu piepen, killall scemd könnte man in das Script nehmen damit Ruhe ist. Dann sollte die Zeitschaltuhr aber zeitnah abschalten, da die Hardwareüberwachung nicht mehr greift (Temperatur).

Gruß Götz
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
@goetz
Wenn das Script sauber durchgelaufen ist und der Strom gekappt wird, dann sollte das Volume nicht als abgesürzt markiert werden, oder?
 

goetz

Super-Moderator
Teammitglied
Sehr erfahren
Mitglied seit
18. Mrz 2009
Beiträge
14.160
Punkte für Reaktionen
407
Punkte
393
Hallo,
@jahlives
genau so sollte es sein. umount von /volume1 ist das größte Problem, wenn das nicht richtig geklappt hat und der Saft geht weg, dann ist der Absturz da. Wirklich sauber bekommt man den Zustand nach dem Script nur auf der seriellen Konsole angezeigt. Wenn der mount weg ist, ist alles OK und der Stecker kann gezogen werden.

Gruß Götz
 

Montie

Benutzer
Mitglied seit
26. Nov 2009
Beiträge
1
Punkte für Reaktionen
0
Punkte
0
.

Hallo,

ich habe eine DS109j und würde die Station auch gerne auf oben beschriebene Weise "herunterfahren".

Ist es möglich, das über eine batch Datei auf dem PC auszulösen? Ich habe bereits eine Batch-Datei, die über PLINK (PUTTY) die DS vom Desktop aus ausschaltet (poweroff-Befehl per SSH).

Könnt Ihr mir sagen, ob und wenn ja, WIE ich das obige Script über SSH auslösen kann?
 

APG-DS107+

Benutzer
Mitglied seit
18. Jan 2008
Beiträge
12
Punkte für Reaktionen
0
Punkte
0
Hi

Da die Plattenqualität meiern neuen DS211+ nicht ideal war, habe ich leider bereits eine Platte verloren. Meine monatlichen Sicherungen auf meine gute alte DS 107+ (DSM 3.1 1636) musste ich deshalb auf ein tägliches Intervall erhöhen. Da ich meine DS 107+ trotzdem nicht dauernd an lassen möchte, war ich auf der Suche nach einem sanften Weg diese herunterzufahren (Grundsätzlich ist sie an einer Stromleiste mit Timer, aber ein Crash alle Tage förder wohl nicht gerade die Datensicherheit ;) )

Deshalb habe ich es mal mit einer Kopie des Skriptes der Seite 1 unter sh /volume1/scripts/shutdown.sh abgelegt und zum Test mal ausgeführt, was im wirkungslosen, untenstehenden Chaos geendet hat:

DiskStationW> sh /volume1/scripts/shutdown.sh
/volume1/scripts/shutdown.sh: line 8: SYSLOG: not found
killall: mplayer: no process killed
ls: /opt/etc/init.d/S*: No such file or directory
ls: /usr/local/etc/rc.d/*: No such file or directory
Connection to 192.168.110.22 closed by remote host.
Connection to 192.168.110.22 closed.

Lag das daran, dass ich es nicht als crown job aufgegeben habe?
Ich wäre sehr dankbar für etwas Unterstützung, da ich mit Linux nicht so bewandert bin.

Danke im voraus & Gruss
APG
 

goetz

Super-Moderator
Teammitglied
Sehr erfahren
Mitglied seit
18. Mrz 2009
Beiträge
14.160
Punkte für Reaktionen
407
Punkte
393
Hallo,
das Script fährt die DS nicht runter sondern nur in einen sicheren Modus damit per Schalter an der Steckerleiste der Strom gekappt werden kann und die DS beim einschalten der Steckerleiste automatisch startet. Willst Du nur ein einfaches runterfahren reicht ein
poweroff
auf der Konsole.

Gruß Götz
 

APG-DS107+

Benutzer
Mitglied seit
18. Jan 2008
Beiträge
12
Punkte für Reaktionen
0
Punkte
0
Hallo Götz

Danke für die schnelle Antwort! Ja das war genau das was ich wollte. Denn die DS hängt an einer zeitgesteuerten Steckliste und sollte daher vom gezielten und abgebremsten "Stromausfall" wieder hochkommen.
Ich dachte nur, da nichts im Log stand und die Meldungen entsprechend negativ klangen, dass es das nicht gewesen sein kann.
Auf jeden Fall hat mein jetziger Test ein einen 10 Min-Boot (ich vermute mit Quotacheck) verursacht, was ja das Skript - nach meinem Verständnis - vermeiden sollte.

Hier die /var/log/messages zur Vollständikgeit:
Apr 1 23:00:54 scemd: scemd.c:379 stop manutild.
Apr 1 23:04:28 root: /usr/syno/etc/rc.d/S98findhostd.sh stop findhostd
Apr 1 23:05:59 syslogd started: BusyBox v1.16.1
Apr 1 23:06:02 dhcpcd[1215]: dhcpReboot: do not want cache
Apr 1 23:06:03 dhcpcd[1215]: client.c(1560)HUP ddnsd result: return code = 256
Apr 1 23:06:03 dhcpcd[1215]: bound ip, lease time 43200 secs. close socket 8
Apr 1 23:15:07 scemd: scemd.c:125 fan_type=2, raid_type=2, led_type=2, thermal_type=1, fanctrl_type=1, auto_poweron_type=2, dual_power_type=1, usbcopy_type=1, fan_number=1, ebox_type=1, pis_type=0, rtc_type=1
Apr 1 23:15:07 scemd: modules/disk_hibernation.c:429 Force hibernation enable, idle minutes 20
Apr 1 23:15:16 kernel: Got empty serial number. Generate serial number from product.
Apr 1 23:15:18 syno_hdd_util: Model:[WDC WD7500AAKS-0], Firmware:[30.04G30], S/N:[SN-NR] in [/dev/sda] is not ssd
Apr 1 23:15:19 synousbdisk: RCClean succeeded
Apr 1 23:15:19 synosata: synosata.c:187 no external sata devices used
Apr 1 23:15:21 ddnsd: main(ddnsd.c:2790): not enable DDNS, shutdown daemon
Apr 1 23:15:25 cupsd[2236]: [771] [listen.c:184] Unable to open listen socket for address :::631 - Address family not supported by protocol.


Danke & Gruss
Apg
 

APG-DS107+

Benutzer
Mitglied seit
18. Jan 2008
Beiträge
12
Punkte für Reaktionen
0
Punkte
0
Hallo Götz

noch ne kleine Frage: Kann ich irgendwie feststellen, ob das Volumen unmounted wurde und ich gefahrlos herunterfahren kann?

Danke & Gruss
apg
 

goetz

Super-Moderator
Teammitglied
Sehr erfahren
Mitglied seit
18. Mrz 2009
Beiträge
14.160
Punkte für Reaktionen
407
Punkte
393
Hallo,
kann man nur auf der seriellen Konsole sehen. Wenn es nicht geklappt hat wird beim nächsten Start ein Quotacheck ausgeführt welcher recht lange dauert, booten kann je nach Plattengröße und -belegung sehr sehr lange dauern.

Gruß Götz
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
@goetz
mir ist folgendes eingefallen. Wegen dem Nachschauen was noch läuft: Wäre es nicht eine Option dem Startscript des ssh chmod -x zu machen? Dann würde der ssh wohl länger offenbleiben und man könnte ggf noch schauen was oder wer noch auf volume1 zugreift. Der sshd sollte ja eigentlich keine Files unter /volume1 benötigen, oder? Vielleicht könnte man so was sehen
 

goetz

Super-Moderator
Teammitglied
Sehr erfahren
Mitglied seit
18. Mrz 2009
Beiträge
14.160
Punkte für Reaktionen
407
Punkte
393
hilf mir mal auf die Sprünge, weiß jetzt nicht was Du genau meinst.

Mit DSM 4.0 piept die DS auch noch im Savemode. Das inzwischen alte Script läuft aber tadellos.

Gruß Götz
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
habe glaub das Problem falsch verstanden. Ich dachte das "alte" Script würde zicken. In dem Fall hätte man ja ggf mit dem ssh was erkennen können
 

goetz

Super-Moderator
Teammitglied
Sehr erfahren
Mitglied seit
18. Mrz 2009
Beiträge
14.160
Punkte für Reaktionen
407
Punkte
393
ich glaube ich hab Dich jetzt verstanden, per ssh einloggen und dann dem ssh Startscript ein -x verpassen damit man am Ball bleibt. Da muß man sich aber den telnet-Weg offen lassen um das rückgängig zu machen. Weist ja teln.. ist für mich nogo:).

Gruß Götz
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
iWeist ja teln.. ist für mich nogo:).
was ist telnet?? ;-) Für solche Fälle habe ich eine lokale Konsole ;-)
Vorhin habe ich Volldepp bei diesem thread irgendwo auf Seite 1 auf antworten geklickt und einen schönen roman geschrieben. Passte aber irgendwie nicht so ganz eine Antwort auf einen Beitrag aus dem 2010, drum wieder gelöscht ;-)
 

goetz

Super-Moderator
Teammitglied
Sehr erfahren
Mitglied seit
18. Mrz 2009
Beiträge
14.160
Punkte für Reaktionen
407
Punkte
393
Grundzu früh auf antworten gedrückt
die Frühlingsgefühle mit Dir durchgegangen:)
Wenn alle Scripts die was starten auch ordentlich ein stop verarbeiten läuft das auch.

Gruß Götz
 

APG-DS107+

Benutzer
Mitglied seit
18. Jan 2008
Beiträge
12
Punkte für Reaktionen
0
Punkte
0
serielle Konsole? Sorry muss mich wohl als Anfänger outen. Wie mache ich das? Gibt es dafür eine Anleitung?

Danke & Gruss
apg
 

goetz

Super-Moderator
Teammitglied
Sehr erfahren
Mitglied seit
18. Mrz 2009
Beiträge
14.160
Punkte für Reaktionen
407
Punkte
393
Hallo,
für die serielle Konsole benötigt man einen Adapter 3,3/5V TTL seriell. Eigenbauanleitung.

Gruß Götz
 

APG-DS107+

Benutzer
Mitglied seit
18. Jan 2008
Beiträge
12
Punkte für Reaktionen
0
Punkte
0
Vielen Dank, aber das übersteigt wohl meine Kenntnisse. Schade, denn ich hätte das Skript genre auf meiner DS107+ eingesetzt. :(

Danke & Gruss
APG
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat