DS herunterfahren wenn kein Client mehr vorhanden

  • Ab sofort steht euch hier im Forum die neue Add-on Verwaltung zur Verfügung – eine zentrale Plattform für alles rund um Erweiterungen und Add-ons für den DSM.

    Damit haben wir einen Ort, an dem Lösungen von Nutzern mit der Community geteilt werden können. Über die Team Funktion können Projekte auch gemeinsam gepflegt werden.

    Was die Add-on Verwaltung kann und wie es funktioniert findet Ihr hier

    Hier geht es zu den Add-ons

Status
Für weitere Antworten geschlossen.
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..
 
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 ?
 
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.
 
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:
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..
 
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.
 
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..
 
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
 
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
 
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?
 
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
 
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:
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:
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:
Ach ja, wenn alle Clients ausgeschaltet bzw. alle Batches gestoppt sind, kann die Syno wieder machen, was sie will.
 
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.
 
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.
 
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?
 
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