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!

Installationsanleitung: Java 8 SE Development Kit (JDK) auf Raspberry Pi

 Lade das Java 8 SE Development Kit von der offiziellen Oracle-Website


    1. Öffne das Terminal auf deinem Raspberry Pi.
    2. Navigiere zum Verzeichnis, in dem du das JDK-Paket heruntergeladen hast. Zum Beispiel, wenn es im „Downloads“-Ordner ist, führe den folgenden Befehl aus:
      cd ~/Downloads

    3. Extrahiere das JDK-Paket mit dem folgenden Befehl:
      tar xvzf jdk-8u381-linux-arm32-vfp-hflt.tar.gz

    4. Das JDK wird nun in ein Verzeichnis mit dem Namen „jdk1.8.0_381“ extrahiert. Um das JDK an einen geeigneten Speicherort zu verschieben, kannst du den folgenden Befehl ausführen (zum Beispiel in das „/opt“-Verzeichnis):
      sudo mv jdk1.8.0_381 /opt
      

5. Standard-Java und Javac auf das neu installierte JDK8 setzen:

sudo update-alternatives --install /usr/bin/javac javac /opt/jdk1.8.0_381/bin/javac 1

sudo update-alternatives --install /usr/bin/java java /opt/jdk1.8.0_381/bin/java 1

sudo update-alternatives --config javac
sudo update-alternatives --config java


6. Überprüfe schließlich mit den Befehl deine Java Version.

java -version


Herzlichen Glückwunsch! Du hast das Java 8 SE Development Kit (JDK) erfolgreich auf deinem Raspberry Pi installiert. Du kannst nun Java-Anwendungen auf deinem Gerät entwickeln und ausführen.

Java FRNClient als Service starten

Hier findest du alle Informationen, die du benötigst, um den FRN Client Service auf deinem Raspberry Pi zu installieren und auszuführen.

Anleitung:

„Die Anleitung geht davon aus, dass ihr die JavaFrnClient.zip im Ordner /home/pi/Desktop/FRNClient/ abgespeichert habt und diese dort auch entpackt habt. Ansonsten müsst ihr einiges anpassen!“

Anmeldung im Terminal: Öffne ein Terminalfenster und melde dich mit deinem Benutzernamen und Passwort auf deinem Raspberry Pi an.

Sudo-Berechtigungen erhalten: Gib den Befehl „sudo su“ ein, um zum Superuser (root) zu wechseln und die benötigten Administratorberechtigungen zu erhalten.

Start-Script erstellen: Gib den Befehl “ nano /home/pi/Desktop/FRNClient/start.sh“ ein und  füge folgendes ein.

#!/bin/bash
cd /home/pi/Desktop/FRNClient/
/usr/bin/bash FRN_Client.run

Danach die Datei speichern und die start.sh ausführbar machen ,mit folgenden Befehl “ chmod 755 start.sh

Service-Datei erstellen: Gib den Befehl „nano /etc/systemd/system/frnclient.service“ ein, um eine neue Service-Datei zu erstellen und zu bearbeiten.

[Unit]
Description=FRN Client Service
After=graphical.target

[Service]
Type=simple
User=root
Environment="DISPLAY=:0"
Environment="XAUTHORITY=/home/pi/.Xauthority"
ExecStart=/usr/bin/bash /home/pi/Desktop/FRNClient/start.sh

[Install]
WantedBy=graphical.target

Einträge in die Service-Datei vornehmen: Füge die oben angegebenen Einträge in die Service-Datei ein und speichere die Datei.

Service aktivieren: Gib den Befehl „systemctl enable frnclient.service“ ein, um den Service zu aktivieren. Dadurch wird der Service beim Start des Raspberry Pi automatisch gestartet.

Service starten: Gib den Befehl „systemctl start frnclient.service“ ein, um den Service zu starten und den FRN Client auszuführen.

Service-Status überprüfen: Gib den Befehl „systemctl status frnclient.service“ ein, um den Status des Services zu überprüfen. Die korrekte Ausgabe wird angezeigt, wenn alles richtig eingerichtet ist.

frnclient.service - FRN Client Service
Loaded: loaded (/etc/systemd/system/frnclient.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2023-07-19 20:17:48 CEST; 10min ago
Main PID: 474 (bash)
Tasks: 35 (limit: 414)
CPU: 1min 33.124s
CGroup: /system.slice/frnclient.service
├─474 /usr/bin/bash /home/pi/Desktop/FRNClient/start.sh
├─479 java -Dfile.encoding=CP1252 -jar ./FRN_Client.run
├─847 dbus-launch --autolaunch 3762129e7c014e5da82acbd2c7b031f2 --binary-syntax --close-stderr
└─848 /usr/bin/dbus-daemon --syslog-only --fork --print-pid 5 --print-address 7 --session

Jul 19 20:17:48 raspberrypi systemd[1]: Started FRN Client Service.
Jul 19 20:21:44 raspberrypi bash[479]: at de.bevis.frn.client.WoRTa.inGic(ClientFrameController.java:6516)
Jul 19 20:21:44 raspberrypi bash[479]: at de.bevis.frn.client.rvErs.run(AudioConfigParser.java:69)
Jul 19 20:21:44 raspberrypi bash[479]: at java.lang.Thread.run(Thread.java:748)

Wir wünschen dir viel Erfolg und hoffen, dass unser FRN Client Service auf deinem Raspberry Pi reibungslos funktioniert. Bei Fragen oder Problemen stehen wir dir gerne zur Verfügung!

 

 

WordPress Cookie Plugin von Real Cookie Banner