Automatisiertes Checken nach Updates per SSH

  • Habe das Script noch etwas aufgeräumt und die SSH-Anmeldedaten in der .ssh/config hinterlegt.

    Sieht gleich etwas übersichtlicher aus und der einfache Aufruf "ssh server" verbindet mich mit dem Homeserver.

    Einmal editiert, zuletzt von Sojan (1. April 2022 um 08:34)

  • Noch eingebaut:

    Für Debian/Ubuntu das Datum des letzten Upgrades. Ausgabe lässt sich natürlich noch verschönern.

    Code
    ~-$ ssh xxx@IP "grep --after-context=3 'Commandline: apt upgrade' /var/log/apt/history.log | tail -n 1"
    
    End-Date: 2022-03-27  16:44:53
  • Und wenn du das Update machst wenn du eingeloggt bist fehlt dir jetzt aber das Datum; wäre es nicht sinniger einen hook einzubauen der die log immer schreibt wenn du apt upgrade ausführst?

    Rollenspiel.Monster -Deine Fediverse Rollenspiel Nodes

    GPG

    System: TUXEDO Aura 15 - Gen1, AMD Ryzen 7 4700U, 32GB RAM, 1TB M.2 SATAIII, EndeavourOS(Gnome[Wayland])

  • Und wenn du das Update machst wenn du eingeloggt bist fehlt dir jetzt aber das Datum; wäre es nicht sinniger einen hook einzubauen der die log immer schreibt wenn du apt upgrade ausführst?

    Stehe irgendwie auf dem Schlauch, verstehe deine Frage nicht.

    Ich frage doch nur das Datum des letzten Upgrades ab, dass wird doch durch apt update gar nicht beeinflusst.

  • Ich überlege gerade wie man das machen könnte das alle abfragen gleichzeitig getätigt werden und man nicht so lange warten muss.

    Habe jetzt die SSH-Abfragen als Hintergrundprozess laufen, geht jetzt schon deutlich flotter.

    Da ich aber nicht weiß, wie ich den Rückgabewert aus einem Hintergrundprozess in eine Variable bekomme, habe ich das ganze temporär nach /dev/shm geschrieben.

  • Überseh ich grad was? Bash arbeitet ja von oben nach unten, dann wird jetzt erst 4 mal die obere schleife ausgeführt, dann gewartet und dann 4 mal die untere. Sehe jetzt keinen Vorteil.

    Außerdem solltest du die untere schleife so aufbauen das die so oft läuft wie es dateien in /dev/shm/ gibt sonst läuft das nochmals auf fehler wenn du oben keine rückgabe bekommen hast.

    Rollenspiel.Monster -Deine Fediverse Rollenspiel Nodes

    GPG

    System: TUXEDO Aura 15 - Gen1, AMD Ryzen 7 4700U, 32GB RAM, 1TB M.2 SATAIII, EndeavourOS(Gnome[Wayland])

  • Überseh ich grad was? Bash arbeitet ja von oben nach unten, dann wird jetzt erst 4 mal die obere schleife ausgeführt, dann gewartet und dann 4 mal die untere. Sehe jetzt keinen Vorteil.

    Ja, übersiehst du ;)

    Ich starte die Prozesse fast zeitgleich und verschiebe sie in den Hintergrund. Habe unmittelbar vor dem wait ein jobs eingefügt, um mir die laufenden Hintergrundprozesse anzeigen zu lassen.

    Noch in der gleichen Sekunde nach dem Start sind alle 8 Prozesse (im Beispielscript waren es nur 4) im Hintergrund gestartet und werden parallel abgearbeitet.

    Insgesamt benötigt der Durchlauf 8 Sekunden, beim alten Script waren es 26 Sekunden.

    Einmal editiert, zuletzt von Sojan (3. April 2022 um 07:10)

  • Ich hab mein Konzept mal nochmal ein wenig abgeändert, so das ich gleich von dem Scirpt aus updaten kann:

    Code
    ssh "${item[1]}" "apt-get autoclean >/dev/null 2>&1 && apt-get dist-upgrade -V && apt-get autoremove >/dev/null 2>&1 && apt-get clean >/dev/null 2>&1"

    Dann hab ich gerade noch folgendes gefunden: https://github.com/koalaman/shellcheck/wiki/SC2206

    Dann würde der for teil so aussehen:

    Code
    for host in "${hosts[@]}"; do
      IFS=":" read -r -a item <<< "$host"

    Rollenspiel.Monster -Deine Fediverse Rollenspiel Nodes

    GPG

    System: TUXEDO Aura 15 - Gen1, AMD Ryzen 7 4700U, 32GB RAM, 1TB M.2 SATAIII, EndeavourOS(Gnome[Wayland])

    Einmal editiert, zuletzt von Tealk (10. April 2022 um 13:37)

  • Ja der nächste schritt ist softwarespezifisch zu werden; da weiß ich aber noch nicht wie ich das genau machen möchte das das auch für mehr als nur mich funktional ist.

    Rollenspiel.Monster -Deine Fediverse Rollenspiel Nodes

    GPG

    System: TUXEDO Aura 15 - Gen1, AMD Ryzen 7 4700U, 32GB RAM, 1TB M.2 SATAIII, EndeavourOS(Gnome[Wayland])

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!