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
Ja das geht definitiv bei einer Aufgabe, die man direkt über den Aufgabenplaner anlegt.Öhm, monatlich müsste auch gehen![]()


shutdown -h now oder einfach shutdown now je nachdem was man bevorzugt.shutdown -r now angeben.Wenn es sich bei dem System um ein Linux handelt dann am einfachsten über dessen Konsole mit dem BefehlWo würde ich den /etc/crontab direkt in der VM finden?
crontab -e.Wo würde ich den /etc/crontab direkt in der VM finden?
Im Unterverzeichnis /etc liegt eine Datei namens crontab.sudo nano /ect/crontab
@luddi: Wenn ich dich richtig verstehe, müsste ich jetzt ein weiteres Benutzerdefiniertes Skript erstellen mit dem Skript shutdown -r now, 30 Minuten nachdem ich meine VM heruntergefahren habe?
synowebapi herunterzufahren, und der andere zweite Task welcher ca. eine halbe Stunde später ausgeführt wird, um die DiskStation neu zu starten.synowebapi -s --exec api=SYNO.Virtualization.API.Guest.Action version=1 method=shutdown runner=root guest_name="NAME_DER_VM"
shutdown -r now
VM_NAME='NAME_DER_VM'
vmstatus=`synowebapi -s --exec api=SYNO.Virtualization.API.Guest method=list runner=root | jq '.data.guests[] | {guest_id, guest_name, status} | select((.guest_name=='$VM_NAME') and (.status=="shutdown"))' 2>&1 | grep -o "shutdown"`
if [ "$vmstatus" == "shutdown" ]; then
# VM is powered off
shutdown -r now
fi
# VM herunterfahren
synowebapi -s --exec api=SYNO.Virtualization.API.Guest.Action version=1 method=shutdown runner=root guest_name="NAME_DER_VM"
# Warte 30 min (1800 sec)
sleep 1800
# Restart DiskStation nach erfolgreicher Prüfung auf ausgeschaltete VM
VM_NAME='NAME_DER_VM'
vmstatus=`synowebapi -s --exec api=SYNO.Virtualization.API.Guest method=list runner=root | jq '.data.guests[] | {guest_id, guest_name, status} | select((.guest_name=='$VM_NAME') and (.status=="shutdown"))' 2>&1 | grep -o "shutdown"`
if [ "$vmstatus" == "shutdown" ]; then
# VM is powered off
shutdown -r now
fi
Du kannst die DS normalerweise nicht über ein Skript herunterfahren oder neu starten, wenn eine VM läuft. Daher muß zwangsläufig zuerst die VM heruntergefahren sein. Sonst kommt lediglich eine Fehlermeldung, die Dich darauf hinweist, daß die VM noch läuft und die DS deswegen nicht heruntergefahren werden kann.die Diskstation nur Neu gestartet werden, wenn die VM tatsächlich ausgeschaltet ist?
NAME_DER_VM mit dem Namen deiner VM zu ersetzen.synowebapi -s habe ich noch den Befehl -s für silent angehängt damit die webapi nicht auch noch auf den stdout schreibt.Das halte ich für ein Gerücht. Denn, wenn der Befehl shutdown über die Konsole oder aus einem crontab ausgeführt wird ist es dem System völlig egal, was da noch am Laufen ist. Es mag sein, dass wenn man das System über das WebUI ausschalten möchte dies verhindert wird.Du kannst die DS normalerweise nicht über ein Skript herunterfahren oder neu starten, wenn eine VM läuft.
Fri Dec 16 root@DiskStation: ~ $ synowebapi -s --exec api=SYNO.Virtualization.API.Guest method=list runner=root | jq '.data.guests[] | {guest_id, guest_name, status}'
{
"guest_id": "4645a70b-0547-4f9e-8817-42633ef19c7e",
"guest_name": "DSM7",
"status": "running"
}
Fri Dec 16 root@DiskStation: ~ $ shutdown -r now
Fri Dec 16 root@DiskStation: ~ $ Connection to 192.168.135.251 closed by remote host.
Connection to 192.168.135.251 closed.
Fri Dec 16 userT1@host1: ~ $
VM_NAME='Home Assistant'
vmstatus=`synowebapi -s --exec api=SYNO.Virtualization.API.Guest method=list runner=root | jq '.data.guests[] | {guest_id, guest_name, status} | select((.guest_name=='$VM_NAME') and (.status=="shutdown"))' 2>&1 | grep -o "shutdown"`
if [ "$vmstatus" == "shutdown" ]; then
# VM is powered off
shutdown -r now
fi
Prima!Ohne die Single quotes hat es funktioniert.
VM_NAME='Home Assistant'select((.guest_name=="Home Assistant")select((.guest_name=="Home Assistant") denn ich habe bei meinen Tests gerade selbst ein merkwürdiges Verhalten bemerkt, wenn ich eine Variable verwende.vmstatus=`synowebapi -s --exec api=SYNO.Virtualization.API.Guest method=list runner=root | jq '.data.guests[] | {guest_id, guest_name, status} | select((.guest_name=="Home Assistant") and (.status=="shutdown"))' 2>&1 | grep -o "shutdown"`
if [ "$vmstatus" == "shutdown" ]; then
# VM is powered off
shutdown -r now
fi
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.