Update und Installations-Script für Hibiscus-Server

...mit Download und SHA Check

 
CBC
Benutzer
Avatar
Geschlecht:
Herkunft: Bonn
Homepage: viaembedded.com
Beiträge: 81
Dabei seit: 06 / 2015
Betreff:

Update und Installations-Script für Hibiscus-Server

 · 
Gepostet: 02.07.2015 - 00:59 Uhr  ·  #1
Hier ein einfaches Update-Script für den Hibiscus-Server. Ist wirklich noch eine frühe Version und es fehlt z.B. noch die Funktionalität aus Olaf's Release URL die aktuelle Version herauszulesen und mit der aktuell installierten zu vergleichen. Zumindest werden nur die Dateien neueren Datums überschrieben, bzw. wenn im /cfg Verzeichnis *properties Dateien vorhanden sind, werden diese nicht überschrieben. So merkt das Script ob frisch installieren angesagt ist oder eben nur updaten. Der Download wird auch anhand der SHA Prüfsumme gechecked ... evtl. hat ja jemand Interesse an der Weiterentwicklung mitzuarbeiten.


Code

#!/bin/bash
#
# Hibiscus-Server Installer / Updater



hibiscus_server_instdir="/opt"

hibiscus_server_home="hibiscus-server"

hibiscus_server_path=$hibiscus_server_instdir"/"$hibiscus_server_home

hibiscus_server_version="2.6.12"

hibiscus_server_url="http://www.willuhn.de/products/hibiscus-server/releases/hibiscus-server-"

hibiscus_server_inst_tmp=$(mktemp -d --tmpdir hibiscussrvinst.XXXXXXXX) || { echo "Fehler beim anlegen des Temp-Dir."; exit 1; }

wget -P $hibiscus_server_inst_tmp/ $hibiscus_server_url$hibiscus_server_version.zip.SHA

wget -P $hibiscus_server_inst_tmp/ $hibiscus_server_url$hibiscus_server_version.zip


file_sha=$(sha1sum -b $hibiscus_server_inst_tmp/"hibiscus-server-"$hibiscus_server_version.zip | sed -r 's/(.{40}).*/\1/')

test_sha=$(cat $hibiscus_server_inst_tmp/"hibiscus-server-"$hibiscus_server_version.zip.SHA | sed -r 's/(.{40}).*/\1/')

[ "$file_sha" == "$test_sha" ] || { echo "Checksumme stimmt nicht, Download fehlerhaft. Abbruch!"; exit 1; }

files=$(find $hibiscus_server_path/cfg/*properties) >dev/null 2>&1

if [ $? -gt 0 ]; then

  unzip -Xu $hibiscus_server_inst_tmp/hibiscus-server-$hibiscus_server_version.zip -d $hibiscus_server_instdir

else

  unzip -Xu $hibiscus_server_inst_tmp/hibiscus-server-$hibiscus_server_version.zip -x *properties -d $hibiscus_server_instdir

fi

rm -fr $hibiscus_server_inst_tmp



Viele Grüße

Christian B. Caldarone
CBC
Benutzer
Avatar
Geschlecht:
Herkunft: Bonn
Homepage: viaembedded.com
Beiträge: 81
Dabei seit: 06 / 2015
Betreff:

Re: Update und Installations-Script für Hibiscus-Server

 · 
Gepostet: 03.07.2015 - 01:09 Uhr  ·  #2
Ging ja doch schneller als ich dachte: Hier nun mit automatischem Check nach aktuellster Stable-Version von der Website, Überprüfung der installierten Version und dann Download oder Update nur nach Bedarf. Überprüft auch ob Schreibrechte in /opt vorhanden sind. Viel Spaß.

Code

#!/bin/bash
#
# Hibiscus-Server Installer / Updater



hibiscus_server_instdir="/opt"

test -w $hibiscus_server_instdir || { echo "Keine Schreibrechte in $hibiscus_server_instdir. Abbruch!"; exit 0; }

hibiscus_server_home="hibiscus-server"

hibiscus_server_path=$hibiscus_server_instdir"/"$hibiscus_server_home

test -e $hibiscus_server_path"/.version" && hibiscus_server_instversion=$(cat $hibiscus_server_path"/.version")

hibiscus_server_version=$(curl --silent --get http://www.willuhn.de/products/hibiscus-server/download.php | grep '<tr><td>Aktuelles Release' | sed -e 's/.*hibiscus-server-\(.*\).zip.*/\1/')

[ "$hibiscus_server_version" == "$hibiscus_server_instversion" ] && { echo "Aktuellste Version ist installiert!"; exit 0; }


hibiscus_server_url="http://www.willuhn.de/products/hibiscus-server/releases/hibiscus-server-"

hibiscus_server_inst_tmp=$(mktemp -d --tmpdir hibiscussrvinst.XXXXXXXX) || { echo "Fehler beim anlegen des Temp-Dir."; exit 1; }

wget -P $hibiscus_server_inst_tmp/ $hibiscus_server_url$hibiscus_server_version.zip.SHA

wget -P $hibiscus_server_inst_tmp/ $hibiscus_server_url$hibiscus_server_version.zip


file_sha=$(sha1sum -b $hibiscus_server_inst_tmp/"hibiscus-server-"$hibiscus_server_version.zip | sed -r 's/(.{40}).*/\1/')

test_sha=$(cat $hibiscus_server_inst_tmp/"hibiscus-server-"$hibiscus_server_version.zip.SHA | sed -r 's/(.{40}).*/\1/')

[ "$file_sha" == "$test_sha" ] || { echo "Checksumme stimmt nicht, Download fehlerhaft. Abbruch!"; exit 1; }

files=$(find $hibiscus_server_path/cfg/*properties) 2>&1

if [ $? -gt 0 ]; then

  unzip -Xu $hibiscus_server_inst_tmp/hibiscus-server-$hibiscus_server_version.zip -d $hibiscus_server_instdir

else

  unzip -Xu $hibiscus_server_inst_tmp/hibiscus-server-$hibiscus_server_version.zip -x *properties -d $hibiscus_server_instdir

fi

rm -fr $hibiscus_server_inst_tmp

echo $hibiscus_server_version >$hibiscus_server_path"/.version"
Gewählte Zitate für Mehrfachzitierung:   0