126 lines
2.6 KiB
Bash
126 lines
2.6 KiB
Bash
#!/bin/bash
|
||
|
||
set -euo pipefail
|
||
|
||
# ==========================================
|
||
|
||
# Dolibarr Quick Update Script
|
||
|
||
# ==========================================
|
||
|
||
# Root-Rechte automatisch anfordern
|
||
|
||
if [ "$EUID" -ne 0 ]; then
|
||
echo "Root-Rechte erforderlich – starte mit sudo..."
|
||
exec sudo bash "$0" "$@"
|
||
fi
|
||
|
||
VERSION="23.0.3"
|
||
|
||
BACKUPDIR="/root/dolibarr-backup-$(date +%F-%H%M)"
|
||
INSTALLDIR="/usr/share/dolibarr"
|
||
OLDDIR="/usr/share/dolibarr-old"
|
||
TMPDIR="/tmp/dolibarr-update"
|
||
|
||
clear
|
||
|
||
echo "========================================="
|
||
echo " Dolibarr Quick Update"
|
||
echo "========================================="
|
||
echo ""
|
||
|
||
echo "[1/10] Arbeitsverzeichnis vorbereiten..."
|
||
|
||
rm -rf "$TMPDIR"
|
||
mkdir -p "$TMPDIR"
|
||
|
||
echo "[2/10] Backup-Verzeichnis erstellen..."
|
||
|
||
mkdir -p "$BACKUPDIR"
|
||
|
||
echo "[3/10] Dateien sichern..."
|
||
|
||
tar -czf "$BACKUPDIR/dolibarr-files.tar.gz" "$INSTALLDIR"
|
||
|
||
echo "[4/10] Datenbankdaten lesen..."
|
||
|
||
DB_NAME=$(grep dolibarr_main_db_name /etc/dolibarr/conf.php | cut -d"'" -f2)
|
||
DB_USER=$(grep dolibarr_main_db_user /etc/dolibarr/conf.php | cut -d"'" -f2)
|
||
DB_PASS=$(grep dolibarr_main_db_pass /etc/dolibarr/conf.php | cut -d"'" -f2)
|
||
|
||
echo "[5/10] SQL Backup..."
|
||
|
||
mysqldump
|
||
-u "$DB_USER"
|
||
-p"$DB_PASS"
|
||
"$DB_NAME" \
|
||
|
||
> "$BACKUPDIR/dolibarr.sql"
|
||
|
||
echo "[6/10] install.lock entfernen..."
|
||
|
||
rm -f /var/lib/dolibarr/documents/install.lock
|
||
|
||
echo "[7/10] Dolibarr $VERSION herunterladen..."
|
||
|
||
cd "$TMPDIR"
|
||
|
||
wget
|
||
"https://sourceforge.net/projects/dolibarr/files/Dolibarr%20ERP-CRM/$VERSION/dolibarr-$VERSION.tgz/download"
|
||
-O dolibarr.tgz
|
||
|
||
echo "[8/10] Entpacken..."
|
||
|
||
tar -xzf dolibarr.tgz
|
||
|
||
echo "[9/10] Installation austauschen..."
|
||
|
||
rm -rf "$OLDDIR"
|
||
|
||
mv "$INSTALLDIR" "$OLDDIR"
|
||
|
||
mv "$TMPDIR/dolibarr-$VERSION" "$INSTALLDIR"
|
||
|
||
echo "[10/10] Konfiguration übernehmen..."
|
||
|
||
cp /etc/dolibarr/conf.php
|
||
"$INSTALLDIR/htdocs/conf/"
|
||
|
||
if [ -d "$OLDDIR/htdocs/custom" ]; then
|
||
cp -a
|
||
"$OLDDIR/htdocs/custom"
|
||
"$INSTALLDIR/htdocs/"
|
||
fi
|
||
|
||
echo "Setze Berechtigungen..."
|
||
|
||
chown -R www-data:www-data "$INSTALLDIR"
|
||
chown -R www-data:www-data /var/lib/dolibarr
|
||
|
||
echo "Apache neu starten..."
|
||
|
||
systemctl restart apache2
|
||
|
||
echo "install.lock wieder erstellen..."
|
||
|
||
touch /var/lib/dolibarr/documents/install.lock
|
||
|
||
chown www-data:www-data
|
||
/var/lib/dolibarr/documents/install.lock
|
||
|
||
chmod 644
|
||
/var/lib/dolibarr/documents/install.lock
|
||
|
||
echo ""
|
||
echo "========================================="
|
||
echo "Update vorbereitet"
|
||
echo ""
|
||
echo "Backups gespeichert unter:"
|
||
echo "$BACKUPDIR"
|
||
echo ""
|
||
echo "Jetzt im Browser öffnen:"
|
||
echo "/dolibarr/install"
|
||
echo ""
|
||
echo "Danach Datenbankmigration durchführen"
|
||
echo "========================================="
|