- Registriert
- 09. Nov. 2025
- Beiträge
- 2
- Reaktionspunkte
- 2
- Punkte
- 3
Hallo liebes Synology-Forum,
ich bin neu hier und habe mit Hilfe dieses Artikels:
https://www.synology-forum.de/threads/virtual-machine-manager-zeitplaene.109835/
mein Problem nur teilweise lösen können.
Meine Anforderung war, dass ich in regelmäßigen Abständen eine VM nach dem Status überprüfen will und falls sie ausgeschaltet oder in irgendeinem anderen Zustand sein sollte, neu zu starten.
Hier ist der Inhalt des Skriptes, welches bei mir dann funktioniert hat:
Ich habe dann diesen Code in eine Skriptdatei "poweronvm-script.sh" eingefügt und unter z.B. hier abgespeichert:
/usr/local/share/poweronvm.sh/poweronvm-script.sh
Ich habe es nicht geschafft, dass das Skript nur mit einem "normalen" User ausgeführt wird, obwohl ich das Verzeichnis wie folgt angelegt habe:
Wichtig, ist das das benutzerdefinierte Skript:
bash /usr/local/share/poweronvm.sh/poweronvm-script.sh
dann in der geplante Aufgabe mit "root" Rechten ausgeführt wird - denn anders habe ich es nicht hinbekommen... Nach kurzer Recherche kann man es wohl auch nur mit root Rechten ausführen...
Ich wäre dankbar, für einen kleinen Hinweis, wenn man das Skript doch irgendwie mit einen "Nicht-Root" User ausführen könnte.
Ansonsten wollte ich mit diesem Beitrag meine funktionierende Lösung teilen.
Viele Grüße
syn-user123
ich bin neu hier und habe mit Hilfe dieses Artikels:
https://www.synology-forum.de/threads/virtual-machine-manager-zeitplaene.109835/
mein Problem nur teilweise lösen können.
Meine Anforderung war, dass ich in regelmäßigen Abständen eine VM nach dem Status überprüfen will und falls sie ausgeschaltet oder in irgendeinem anderen Zustand sein sollte, neu zu starten.
Hier ist der Inhalt des Skriptes, welches bei mir dann funktioniert hat:
Code:
# Check the VM status
VM_STATUS=$(synowebapi --exec api=SYNO.Virtualization.API.Guest version=1 method=get runner=admin guest_name="My-VM-Name" | jq -r '.data.status')
echo "$VM_STATUS"
# If the VM is running, do nothing else start the VM
if [ "$VM_STATUS" = "running" ]; then
echo "VM is already running"
else
synowebapi --exec api=SYNO.Virtualization.API.Guest.Action method=poweron guest_name="My-VM-Name"
echo "VM is now starting"
fi
Ich habe dann diesen Code in eine Skriptdatei "poweronvm-script.sh" eingefügt und unter z.B. hier abgespeichert:
/usr/local/share/poweronvm.sh/poweronvm-script.sh
Ich habe es nicht geschafft, dass das Skript nur mit einem "normalen" User ausgeführt wird, obwohl ich das Verzeichnis wie folgt angelegt habe:
Code:
mkdir /usr/local/share/poweronvm.sh/poweronvm-script.sh
sudo chown -R My-VM-AdminUser /usr/local/share/poweronvm.sh/
touch /usr/local/share/poweronvm.sh/poweronvm-script.sh
Wichtig, ist das das benutzerdefinierte Skript:
bash /usr/local/share/poweronvm.sh/poweronvm-script.sh
dann in der geplante Aufgabe mit "root" Rechten ausgeführt wird - denn anders habe ich es nicht hinbekommen... Nach kurzer Recherche kann man es wohl auch nur mit root Rechten ausführen...
Ich wäre dankbar, für einen kleinen Hinweis, wenn man das Skript doch irgendwie mit einen "Nicht-Root" User ausführen könnte.
Ansonsten wollte ich mit diesem Beitrag meine funktionierende Lösung teilen.
Viele Grüße
syn-user123
