DS herunterfahren wenn kein Client mehr vorhanden

Moaddin

Benutzer
Mitglied seit
29. Dez 2011
Beiträge
29
Punkte für Reaktionen
0
Punkte
0
na das hört sich super an :)

Dann solltest Du auch noch Testen, ob die DS nicht herunterfährt wenn Du es gar nicht möchtest.

Wie Du das Script beim Hochfahren automatisch starten lässt, hatte ich in meinem ersten, sehr langen Post geschrieben, Stichwort: S81autoshutdown.sh

Bin gespannt, ob bald alles so funktioniert wie Du es Dir vorgestellt hast..
 

Nexer

Benutzer
Mitglied seit
17. Apr 2013
Beiträge
37
Punkte für Reaktionen
0
Punkte
0
ja das war ja im prinzip die datei in den rc.d ordner, da ist die datei auch drin, mit dem angepassten ordnernamen.

Doch leider startet das script nicht automatisch sondern nur nach "aufforderung".....

wo hab ich da etwas vergessen ?
 

Moaddin

Benutzer
Mitglied seit
29. Dez 2011
Beiträge
29
Punkte für Reaktionen
0
Punkte
0
Dann musst Du Dir die Dateiberechtigungen der anderen Dateien in diesem Ordner angucken und die Startscriptdatei exakt so anpassen.
Ich kann das gerade bei mir nicht nachgucken, zumindest muss die Datei ausführbar sein, also chmod 755 wird's mindestens sein... aber am besten einfach die gleiche Berechtigung wie die anderen geben.
 

Nexer

Benutzer
Mitglied seit
17. Apr 2013
Beiträge
37
Punkte für Reaktionen
0
Punkte
0
die dateiberechtigung der s99autoshutdown.sh ist auf 755 geändert.
jetzt bootet die ds aber nichtmehr, nur wenn ich die s99...sh datei umbenenne dann bootet sie wieder problemlos
 
Zuletzt bearbeitet:

Moaddin

Benutzer
Mitglied seit
29. Dez 2011
Beiträge
29
Punkte für Reaktionen
0
Punkte
0
Also erstmal gucken, ob die Berechtigung gleich der anderen Dateien ist mit "ls -al" oder "ls -l"

Dann kannst Du das Startscript auch manuell testen, indem Du in dem rc.d Ordner stehend folgendes eingibst:
./S99autoshutdown.sh start

Das S muss übrigens unbedingt groß geschrieben sein.
Wenn das Script dadurch erfolgreich gestartet wurde, kannst Du mit folgendem Befehl das Script stoppen:
./S99autoshutdown.sh stop

Danach solltest Du keinen entsprechenden Prozess mehr finden...

So kannst Du also alles testen ohne die DS zu rebooten.
Wenn's dann immer noch Probleme gibt, dann könnte das der Grund sein, warum ich bei mir S81 anstatt S99 gewählt habe..
 

Nexer

Benutzer
Mitglied seit
17. Apr 2013
Beiträge
37
Punkte für Reaktionen
0
Punkte
0
so, das script funktioniert einwandfrei, doch wenn ich nun auf die ds zugreife, bspw. eine windowsfreigabe o.ä schaltet sich die ds trotzdem aus.

kann man einen scriptteil einsetzen, der vll den datentraffic / festplattentraffic oder den zugriff auslesen kann oder so ?

würde ungerne zur ping methode zurückgreifen.

Mfg.
 

Moaddin

Benutzer
Mitglied seit
29. Dez 2011
Beiträge
29
Punkte für Reaktionen
0
Punkte
0
Wie gesagt, wenn Du den Befehl "smbstatus -q" manuell ausführst, dann siehst Du an der Ausgabe, ob Dein Anliegen mit dem Script möglich ist, und da gehe ich ganz schwer von aus.

Wenn jemand auf die DS irgendwie (mittels Windows bzw. smb) zugreift, erhältst Du dort eine Ausgabe. Und im Script wird dann mittels dem Befehl grep geprüft, ob eine entsprechende Ausgabe vorhanden ist.

Danach kannst Du Dir z.B. das Logging des Scripts angucken um zu sehen, ob etwas schief läuft. Wenn Du eine Freigabe in der DS geöffnet hast und im Log steht, dass Samba nicht aktiv ist, dann stimmt die Abfrage mittels grep im Script nicht.

Du wirst wahrscheinlich nicht darum herum kommen das Script zu verstehen..
 

Wessix

Benutzer
Mitglied seit
14. Okt 2010
Beiträge
328
Punkte für Reaktionen
0
Punkte
22
smb zugriff kann geprüft werden so wie Moaddin das sagt. Ich hatte das mal in Gebrauch, nutze es aber momentan nicht mehr, ich kann mal schauen ob ich das Script noch finde
 

synmag

Benutzer
Mitglied seit
16. Jul 2013
Beiträge
2
Punkte für Reaktionen
0
Punkte
0
Hallo an alle,
aaaalsoo....
auch ich hab mich mit dem Thema shutdown der DS beschäftigt wenn kein Client verbunden ist....
Meine Kenntnisse sind allerdings nicht ganz so gut und ich lese mich gerade ein....
Bin schon ganz verwirrt von BASH , ASH... WAS!!!???

Hier nun meine Konkrete Frage(n)

Ich hab eine DS413j DSM 4.2

Was muß ich nun genau machen damit die DS nur runterfährt wenn kein Zugriff erfolgt...
(Ich denke seit den Anfängen dieser Diskussion hat sich einiges geändert....)

3rd party hab ich Installiert... Wie ist das jetzt mit dem Cron job / Cron Editor... Wo muß ich nun welche Datei speichern?
Das "script" das Moaddin am 9.5. 22:43 gepostet hat scheint echt super zu sein.

Ich bin für Hilfe sehr dankbar.
Wenn ihr wollt könnt ihr mich auch per mail kontaktieren damit das Thema nicht noch um x-Seiten unnötig verlängert wird.
(Ich kann ja dann eine Zusammenfassung posten).

Vielen Dank schon mal an alle DS User.

Mich wundert es nur das es nicht eine Option in der DS gibt die genau das kann. (Die Kiste kann doch fast alles)

Gruß Markus
 

raymond

Benutzer
Mitglied seit
10. Sep 2009
Beiträge
4.704
Punkte für Reaktionen
21
Punkte
118

Mike2Go

Benutzer
Mitglied seit
19. Nov 2011
Beiträge
8
Punkte für Reaktionen
0
Punkte
1
Hallo zusammen,

ich würde gerne das Thema noch mal aufgreifen. Das Herunterfahren, wenn kein Client mehr vorhanden ist, habe ich verstanden und funktioniert auch. Ich würde aber gerne noch zusätzlich prüfen, ob aktuell eine Backup-Aufgabe auf der DS läuft (internes Backup, ohne Netzwerktraffic). Habe dazu leider nichts geeignetes gefunden. Kann man so was mit einbauen?
 

fbartels

Benutzer
Mitglied seit
19. Mrz 2013
Beiträge
284
Punkte für Reaktionen
2
Punkte
24
Ja, das ist recht einfach erledigt. In meinem Skript habe ich hierfür folgendes stehen:

Code:
if [ "$(pidof synolocalbkp)" ]; then
        log "Backup is running"
        cancel
fi

if [ "$(pidof rsync)" ]; then
        log "Rsync Backup is running"
        cancel
fi
 

Beefjerckey

Benutzer
Mitglied seit
10. Mrz 2016
Beiträge
20
Punkte für Reaktionen
0
Punkte
0
Hallo liebes Forum,

als neuer Besitzer einer DS214se (kein WoL, kein einstellbares Herunterfahren, private Nutzung) wünsche auch ich mir ein gesteuertes Herunterfahren.
Manuelles Einschalten ist kein Problem.
Da ich aus der Windows-/DOS-Welt komme, stellt Linux für mich schon eine Herausforderung dar.
Ich habe nun tagelang das Forum studiert um ausreichend Kenntnisse zu erhalten das bei meiner NAS umzusetzen.
Es handelt sich hier ganz klar um copy and paste aus den vorhandenen Scriptschnipseln.

Vielleicht kann sich einer der "Linux-/Syno-Pros" meine Vorgehensweise mal anschauen und mir bei Fehlern etwas auf die Sprünge helfen. I
ch habe bis jetzt noch nichts an meinem System geändert.
Wollte mir erst mal eine "Freigabe" von Euch einholen.

Hier meine geplante Vorgehensweise:

Aufgabe:
Das Script schaut regelmäßig ob definierte Clients verbunden sind (Aktivitätschecks), und fährt bei Inaktivität die DS herunter.

Vorgehen:
1. Script autoshutdown.sh im Text-Editor (vi-editor) der DS erstellen und unter /volume1/private/scripts/ speichern (Pfad evtl. anpassen)

Rich (BBCode):
#!/bin/sh
# shutdown der DS wenn kein anderes Netzwerkgerät mehr verfügbar ist
#
# VARIABLES TO EDIT
# host: network device (eg. router or PC) as reference (name or IP)
# host2: network device (eg. router or PC) as reference (name or IP)
# host3: network device (eg. router or PC) as reference (name or IP)
# waittime (in seconds): time between each ping (for PC: use min. reboot time) to prevent shutdown while rebooting

Set –x (nur zum Testen, zeigt alle Zeilen an)
host=IP von gerät1 (anpassen)
host2=IP von Gerät2 (anpassen)
host3=IP von Gerät3 (anpassen)
waittime=300 (5min., anpassen)

while true; do
      ping -c 1 $host || ping -c 1 $host2 || ping -c 1 $host3 > /dev/null
      if [ $? == 1 ]; then
         sleep $waittime
         ping -c 1 $host || ping -c 1 $host2 || ping -c 1 $host3 > /dev/null
         if [ $? == 1 ]; then
            # shutdown DS
            poweroff
         fi
      fi
      sleep $waittime
done;

Anschließend mit chmod 755 autoshutdown.sh die Rechte setzen.

2. Script S99zzautoshutdown.sh im Text-Editor (vi-editor) der DS erstellen in /usr/syno/etc/rc.d/ damit es bei jedem Hochfahren der DS gestartet wird.

Rich (BBCode):
#!/bin/sh                                                                       
case "$1" in                                                                      
        start)                                                                  
                echo "Starting autoshutdown script..."                          
                /volume1/private/scripts/autoshutdown.sh &                           
        ;;                                                                      
        stop)                                                                   
                killall autoshutdown.sh
                killall sleep                               
        ;;                                                                      
        restart)                                                                
                $0 stop                                                         
                sleep 1                                                         
                $0 start                                                        
        ;;                                                                      
Esac
 
Zuletzt bearbeitet:

Silentioso

Benutzer
Mitglied seit
06. Sep 2013
Beiträge
45
Punkte für Reaktionen
0
Punkte
0
Hallo miteinander,

ich mache das ganze sehr einfach - ob das für die anderen Wünsche hier genügt, weiß ich nicht:

- Das Herunterfahren überlasse ich der Syno selbst, damit bin ich mir sicher, dass ich keine NAS eigenen Prozesse abwürge.
Der Sleeptimer wird in der Syno selbst parametriert.

- Das aufwecken mache ich über ein Script (echter MS-DOS Batch :) ), das
1. Ein WOL-Progrämmchen aufruft und
2. in einer Zeitschleife - kürzer als die Einschlafzeit der Syno - einen kurzen HDD-Zugriff auf der Syno veranlasst.
Dieser Zugriff setzt den Sleeptimer der Syno zurück.

Den besagten Batch kopiere ich auf die nötigen Clients. Auf denen wird er dann nach Bedarf per Autostart beim Booten oder aber manuell gestartet.

Auf einem Mediacenter-PC starter der BAT automatisch, dann in diesem Falle KODI. KODI wartet dann brav im Startbildschirm, bis die Syno bereit ist.
Für mich sehr praktisch!

Es läuft also andersherum als in den oben beschriebenen Lösungen: Nicht die Syno schaut, ob noch ein Client aktiv ist, sondern jeder Client selbst sorgt dafür, dass die Syno nicht einschläft.

Den Batch habe ich zu Hause - werde ihn bei Interesse noch hier nachreichen.
 
Zuletzt bearbeitet:

dil88

Benutzer
Contributor
Sehr erfahren
Mitglied seit
03. Sep 2012
Beiträge
29.898
Punkte für Reaktionen
1.177
Punkte
754
Wer es wie Silentioso macht, dem empfehle ich, sich das Community-Paket Advanced Power Manager anzusehen. Das verhindert bei entsprechender Konfiguration z.B., dass die DS herunterfährt, während man noch am PC auf einem Netzlaufwerk arbeitet.

Edit: Stimmt nicht, was ich geschrieben habe: Silentioso spricht ja von dem (ich meine) mit DSM 5.2 eingeführten Timer, der die DS eine konfigurierbare Zeit nach dem HD-Ruhezustand herunterfährt. Ich meine aber das Herunterfahren per Aufgabenplaner. Bei letzterem ist die Nutzung des APM sinnvoll, bei dem, was Silentioso beschreibt, natürlich nicht.
 
Zuletzt bearbeitet:

Silentioso

Benutzer
Mitglied seit
06. Sep 2013
Beiträge
45
Punkte für Reaktionen
0
Punkte
0
Ach ja, wenn alle Clients ausgeschaltet bzw. alle Batches gestoppt sind, kann die Syno wieder machen, was sie will.
 

Silentioso

Benutzer
Mitglied seit
06. Sep 2013
Beiträge
45
Punkte für Reaktionen
0
Punkte
0
von dem (ich meine) mit DSM 5.2 eingeführten Timer,
... ja, genau!
Als ich meine DS gekauft habe, gabs das noch nicht - hat mich geärgert. Jetzt bin ich zufrieden.
 

Beefjerckey

Benutzer
Mitglied seit
10. Mrz 2016
Beiträge
20
Punkte für Reaktionen
0
Punkte
0
Tja also meine DS kann immernoch nicht selbstätig runterfahren oder starten. Würde meine Vorgehensweise denn soweit passen? Siehe Beitrag oben.
Hilfe wäre nett.
 

dil88

Benutzer
Contributor
Sehr erfahren
Mitglied seit
03. Sep 2012
Beiträge
29.898
Punkte für Reaktionen
1.177
Punkte
754
Du hast unter "Hardware & Energie / Ruhezustand der Festplatte" auch nicht die Option "Automatisches Ausschalten aktivieren" ganz unten?

Wenn dem so ist, würde ich Dein Skripte einfach ausprobieren. Die Idee dahinter ist richtig. Mir ist nur nicht klar, warum Du den Ping zweimal in der Schleife hast. Willst Du damit sicherstellen, dass der Shutdown immer erst die waittime (in Deinem Fall 5min.) später erfolgt, als die Bedingung erfüllt ist?
 


 

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