Auf diversen Nextcloud Servern deren Apps updaten

  Michel   Lesezeit: ~1 Minute  🗪 4 Kommentare

Mit einem Befehl auf diversen Nextcloud Servern die Apps updaten.

auf diversen nextcloud servern deren apps updaten

Unter meiner Kontrolle befinden sich mittlerweile diverse Nextcloud Server. Wenn eine App aktualisiert wird, erhalte ich auch von jedem Server eine Mail dazu. Meist geht man dann mal auf eine Nextcloud Instanz, prüft rasch die Release-Information und macht dann ein Update. Wenn alles geht, dann kann man die App überall aktualisieren.

Wie macht man das automatisch?

Das geht mit tmux und folgendem Bash Script, das ich in die ~/.bash_aliases eingefügt habe:

#!/bin/bash

array=('SERVER1' 'SERVER2' 'SERVER3' 'SERVER4')

function occup() { 
tmux new-session -d -s sshjob 'sleep 5 && exit'
for i in "${array[@]}"
do
read -d '' command  <<EOF
printf \"Start Update auf $i\\n\" && /path/to/occ app:update --all && /path/to/occ update && printf \"Update fertig\\n\ && exit"
EOF
    tmux split-window -h
    tmux send-keys " ssh $i \"$command\"" C-m &
done
tmux select-layout tiled
tmux attach-session -t sshjob
}

Quelle: https://github.com/tmux/tmux/wiki

Tags

tmux, automatisieren, server, ssh

Tealk
Geschrieben von Tealk am 12. Juni 2023 um 11:46

Für ein ähnliches Problem habe ich mich mit ansible beschäftigt, da habe ich auch das Nextcloud App aktualisieren eingebaut: https://codeberg.org/Tealk/ansible_collection/src/branch/master/playbook/update-nextcloud-apps.yml

Tom
Geschrieben von Tom am 12. Juni 2023 um 12:48
- read -d '' command  
+ read -d '' command  /path/to/occ app:update --all
Michel
Geschrieben von Michel am 13. Juni 2023 um 16:26

Danke für das Update. Da ist wohl ein Teil des Scriptes verloren gegangen. Ich lasse den Artikel aktualisieren.

Es sieht bei mir so aus, ich empfehle in das Script noch ein occ update anzufügen, weil gelegentlich Apps das Erfordern (Letztens bei mir der Kalender):

function occup() { tmux new-session -d -s sshjob 'sleep 5 && exit' for i in "${array[@]}" do read -d '' command <<EOF printf \"Start Update auf $i\n\" && /path/to/occ app:update --all && /path/to/occ update && printf \"Update fertig\n\ && exit" EOF tmux split-window -h tmux send-keys " ssh $i \"$command\"" C-m & done tmux select-layout tiled tmux attach-session -t sshjob }

Ralf Hersel
Geschrieben von Ralf Hersel am 14. Juni 2023 um 18:06

Der Code im Artikel wurde nun vervollständigt.