JavaFrnServer automatisch updaten

Anleitung: Automatisches Update-Skript für FRN_Server auf einem Raspberry Pi

Anleitung: Automatisches Update-Skript für FRN_Server auf einem Raspberry Pi

Einleitung:

Diese Anleitung erklärt, wie du ein automatisches Update-Skript für bis zu drei FRN_Server-Instanzen auf deinem Raspberry Pi einrichten kannst. Der FRN_Server ist eine Software, die im Freien Funknetz (FRN) verwendet wird, um Benutzern das Senden und Empfangen von Audiosignalen über das Internet zu ermöglichen. Mit diesem Skript kannst du bis zu drei FRN_Server-Instanzen automatisch aktualisieren und sicherstellen, dass sie immer auf dem neuesten Stand sind.

Voraussetzungen:

  1. Du benötigst einen Raspberry Pi mit Raspbian (oder einem anderen Linux-basierten Betriebssystem) und Zugriff auf das Terminal
  2. Stelle sicher, dass du eine funktionierende Internetverbindung hast.

Und du startest den JavaFrnServer mit einem Bash-Script z.B. start.sh. Mit diesem Kommandozeilenbefehl: java -jar FRN_Server.jar -sp server.properties -lp log4j.xml

Schritt 1: Erstellen des Skripts

Öffne das Terminal auf deinem Raspberry Pi und erstelle eine neue Datei mit dem Namen frnserver_update.sh im Verzeichnis /opt/frnserverupdate/. Du kannst dazu den Befehl nano /opt/frnserverupdate/frnserver_update.sh verwenden.


#!/bin/bash

# Verzeichnis erstellen, wenn es nicht existiert
mkdir -p /opt/frnserverupdate

# FRN_Server.zip herunterladen und im Zielverzeichnis ablegen
wget -O /opt/frnserverupdate/FRN_Server.zip https://freeradionetwork.de/assets/files/FRN_Server.zip

# Versionsnummer der heruntergeladenen ZIP-Datei extrahieren
NEW_VERSION=$(unzip -p /opt/frnserverupdate/FRN_Server.zip releasenotes.txt | grep -oP 'Version: \K\d+\.\d+\.\d+')

# Funktion zum Kopieren der Dateien in das FRN_Server-Verzeichnis, falls die Version aktueller ist
update_frnservers () {
  SERVER_PATH=$1

  # Versionsnummer der bereits installierten Dateien extrahieren
  INSTALLED_VERSION=$(grep -oP 'Version: \K\d+\.\d+\.\d+' $SERVER_PATH/releasenotes.txt)

  # Versionsvergleich
  if [[ "$NEW_VERSION" > "$INSTALLED_VERSION" ]]; then
    cp FRN_Server.jar $SERVER_PATH/
    cp releasenotes.txt $SERVER_PATH/
    cp log4j.xml $SERVER_PATH/
    cp properties_doc.pdf $SERVER_PATH/
    cp server_example.properties $SERVER_PATH/

    # Berechtigungen für die Dateien und Verzeichnisse setzen
    chmod -R 755 $SERVER_PATH

    echo "Update für $SERVER_PATH auf Version $NEW_VERSION abgeschlossen!"
  else
    echo "Kein Update erforderlich. Die installierte Version ($INSTALLED_VERSION) ist aktuell."
  fi
}

# Update für bis zu drei FRN_Server-Instanzen durchführen
update_frnservers "/opt/FRNSERVER"
update_frnservers "/opt/SERVERERSATZ"
update_frnservers "/opt/FRNSERVERFUNKNETZNRW"

# Skript zum Neustarten der FRN_Server-Instanzen

# Funktion zum Neustarten der FRN_Server-Instanz
restart_frnservers () {
  SERVER_PATH=$1

  # Prüfen, ob die FRN_Server-Instanz bereits ausgeführt wird
  if pgrep -f "$SERVER_PATH/FRN_Server.jar" > /dev/null; then
    echo "Neustarte FRN_Server-Instanz in $SERVER_PATH..."
    pkill -f "$SERVER_PATH/FRN_Server.jar"
    sleep 5
  fi

  # FRN_Server neu starten
  cd $SERVER_PATH
  nohup java -jar FRN_Server.jar -sp server.properties -lp log4j.xml >/dev/null 2>&1 &
}

# Neustart für bis zu drei FRN_Server-Instanzen durchführen
restart_frnservers "/opt/FRNSERVER"
restart_frnservers "/opt/SERVERERSATZ"
restart_frnservers "/opt/FRNSERVERFUNKNETZNRW"
  

Schritt 2: Berechtigungen setzen

Gib den folgenden Befehl im Terminal ein, um das Skript ausführbar zu machen:

chmod +x /opt/frnserverupdate/frnserver_update.sh

Schritt 3: Crontab-Konfiguration

Öffne die Crontab-Konfiguration, indem du den folgenden Befehl im Terminal ausführst:

crontab -e

Wenn es dein erstes Mal ist, die Crontab-Konfiguration zu bearbeiten, wirst du nach einem Texteditor gefragt. Wähle einen Editor aus der Liste (z. B. nano oder vim).

Schritt 4: Cron-Job hinzufügen

Füge die folgende Zeile am Ende der Crontab-Datei hinzu, um den Job einmal pro Woche (z. B. sonntags um 2 Uhr morgens) auszuführen:

0 2 * * 0 /bin/bash /opt/frnserverupdate/frnserver_update.sh >/dev/null 2>&1

Speichere und schließe den Editor.

Schritt 5: Testen

Das automatische Update-Skript ist nun eingerichtet. Es wird jeden Sonntag um 2 Uhr morgens im Hintergrund ausgeführt und aktualisiert bis zu drei FRN_Server-Instanzen, falls eine neue Version verfügbar ist.

Anmerkung: Um das Skript für andere Installationen anzupassen, passe die Pfade und die Anzahl der FRN_Server-Instanzen in der Funktion update_frnservers entsprechend an. Du kannst weitere Pfade und Instanzen hinzufügen, indem du den Funktionsaufruf update_frnservers kopierst und mit den gewünschten Pfaden ergänzt.

Fazit:

Herzlichen Glückwunsch! Du hast erfolgreich ein automatisches Update-Skript für bis zu drei FRN_Server-Instanzen auf deinem Raspberry Pi erstellt und eingerichtet. Die FRN_Server-Instanzen werden nun wöchentlich automatisch aktualisiert, um sicherzustellen, dass sie immer auf dem neuesten Stand sind. Genieße das ununterbrochene Funken und die einfache Wartung deiner FRN-Server!

WordPress Cookie Plugin von Real Cookie Banner