Proxmox Server automatisch herunterfahren

Harvester500

Cadet 3rd Year
Registriert
März 2021
Beiträge
36
Hallo,
Ich habe auf meinem Homeserver Proxmox aufgesetzt. Jetzt möchte Ich aber nicht, dass der 24/7 läuft, weil der Nachts ja unnötig Strom verbrennt. Ich möchte, dass der Server um 8 Uhr morgens hochfährt und um 23 Uhr abends ausgeht. Das automatische Hochfahren konnte Ich ganz einfach im Bios einstellen. Nur, wie ich den automatisch runterfahren lasse weiß Ich nicht so recht. Habe im Internet gelesen, dass man das in Proxmox einstellen kann, mit einem Cronjob oder so ähnlich. Wie das funktioniert, habe Ich aber nicht richtig herausgefunden.
Kann mir einer weiterhelfen, wie das geht?
 
00 23 * * * root /usr/sbin/shutdown -h now

Oh, fast vergessen:
vorher sudo -u root crontab -e

dann landest du schon wo es passt:)

oder halt deinem user rechte geben, das shutdown binary direkt auszufuehren.
 
  • Gefällt mir
Reaktionen: PHuV und Natriumchlorid
Cron ist dafür da um eben Aufgaben oder Tasks in Unix-System zeitlich zu planen.

Wenn du also dein System jeden Abend um Punkt 23 Uhr herunterfahren möchtest, dann musst du folgenden Task beim root User hinterlegen:

Code:
0 23 * * * shutdown -h now

Proxmox fährt alle offenen Container und VMs automatisch herunter und der Rechner schaltet sich anschliessend aus.

Falls du Hilfe beim Planen der Cron-Tasks brauchst: Crontab.guru ist ein hilfreiches Tool dafür.
 
  • Gefällt mir
Reaktionen: PHuV und madmax2010
madmax2010 schrieb:
00 23 * * * root /usr/sbin/shutdown -h now

Oh, fast vergessen:
vorher sudo -u root crontab -e

dann landest du schon wo es passt:)

oder halt deinem user rechte geben, das shutdown binary direkt auszufuehren.
Danke für den Tipp, aber wenn Ich den Command sudo -u root crontab -e eingebe, kommt immer die Meldung:
-bash: sudo: command not found
 
einfach crontab -e
bei proxmox ist der standardbenutzer sowieso der "root".
 
  • Gefällt mir
Reaktionen: madmax2010
Ok, danke für die Hilfe. Automatisches runterfahren funktioniert jetzt.
 
Ich muss diesen alten Thread nochmal ausgraben. Ich habe mir auch proxmox installiert und möchte, dass der Node automatisch runterfährt,wenn eine gewisse Zeit keine Aktivität ist. Also zum Beispiel HDD oder Netzwerk Traffic < 100kB/s

Vorher hatte ich Windows Server installiert und AutoShutdownManager genutzt, wo man entsprechende Regeln definieren konnte.
 
@SaxnPaule,

das ist entweder ein einfachs Bash Script oder
 
@SaxnPaule Ah! Toll, dass es das als fertiges Tool gibt. Ich habe mir sowas für den Homeserver selbst als Bash-Script geschrieben, das alle 5 Minuten via Cronjob aufgerufen wird.

Vielleicht noch als Ergänzung interessant: Alle Clients im Netz wecken den Server mit WOL beim Systemstart (bzw. beim Aufwecken aus dem Ruhezustand) auf und binden dann die für den jeweiligen Client freigegebenen NFS-Shares ein, sobald der Server erreichbar ist.

Mal von den täglichen automatischen Backups von und zur eigenen Cloud abgesehen, ist damit sichergestellt, dass der Server wirklich nur dann läuft, wenn sich ein Client im Netz befindet.
 
Ja, das Wecken per WoL hab ich bei meinem auch. Das ist ja das kleinere "Problem" und clientseitig umzusetzen. Im Server sind es ja nur zwei Checkboxen (UEFI und OS).

Selbst scripten hätte ich vermutlich auch hinbekommen, aber das hätte mich wieder 100 Libraries und 5 Abende Zeit gekostet. Die fertige Version lässt sich ziemlich spezifisch anpassen und deckt alle erdenklichen Szenarien ab.

Allerdings hat sie (zumindest bei mir) einen Bug, nämlich dass die Cycles nicht berücksichtigt werden.
Sie prüft zwar alle x Sekunden, sobald aber keine der "Reset-Bedingungen" greift wird der Server sofort runtergefahren und nicht wie eingestellt erst nach y erfolgreichen Checks.
 
Als komplizierten Workaround könnte man den Dienst in den Fake-Modus versetzen und in einem separaten Script den zurückgemeldeten Statuscode auswerten. Nach x Durchläufen: Shutdown.

Aber einfacher wäre es wohl, die Entwickler auf den Bug hinzuweisen und auf einen Patch zu warten ;)

Oder Du änderst im Script (/usr/sbin/autoshutddown) eigenhändisch den letzten Codeblock. Bspw. so (mehr oder weniger Copy&Paste des Originals von OMV):

Code:
(....)
_log "INFO: ${CYCLES} cycles until shutdown is issued"
FCNT="${CYCLES}"
while : ; do
    _log "INFO: ------------------------------------------------------"
    _log "INFO: New supervision cycle started, checking system activity"
    FCNT=$((FCNT - 1))
    msg="All active checks passed"
    _check_system_active || { FCNT="${CYCLES}"; msg="Active check failed"; }
    [ "${FCNT}" -eq 0 ] && break
    _log "INFO: ${msg}, ${FCNT} cycles until shutdown ..."
    _log "INFO: Sleep for ${SLEEP}s"
    sleep "${SLEEP}"
done
_log "INFO: All active checks passed, Shutting down system ..."
[ "${WAKEALARM_SET}" == "true" ] && _set_wakealarm
trap - EXIT
_shutdown
 
Zurück
Oben