Archiv für die Kategorie ‘Server’

phpMyAdmin per Cronjob updaten – Update

Samstag, 11. Mai 2013

Ich habe eine verbesserte aktualisierte Version des Skripts unter MIT Licence auf GitHub veröffentlicht.

phpMyAdmin per Cronjob updaten

Freitag, 08. März 2013

Da meine Freundin behaupt, ich mache beruflich ja nur „Updates“, habe ich mir überlegt, wie ich das vereinfachen kann. 😉 Daher wird dieser Blog jetzt etwas technischer und ich poste in Zukunft ein paar Anleitungungen, die mir das Leben vereinfachen.

Fange ich mit phpMyAdmin und Confixx an. Das mitgelieferte phpMyAdmin ist total veraltet, die Pakete in Debian sind auch nicht immer die neusten. Also bleibt nur manuelles Updaten. Bis ich ein nettes Shellskript auf http://rootserver-blog.de/ gefunden habe. Das klingt super und funktioniert auch gut. Jedoch muss ich auch damit regelmässig überprüfen, ob es ein Update gibt. Also habe ich das Skript ein wenig modifiziert und als täglichen cronjob angelegt.

#!/bin/bash
ORDNER=/var/www/confixx/html  # Ordner in dem phpMyAdmin laufen soll. Ohne abschließenden Slash!
PMA=phpMyAdmin  # phpMyAdmin Ordner
USER=confixx    # Benutzer
GROUP=confixx   # Gruppe

# Meine Version ermitteln
MYVERSION=$(cat "$ORDNER/$PMA/README"|grep Version|awk {'print $2'});

if [ $1 ]
then
        # Benutzereingabe der Version hat Vorrang
        VERSION=$1;
else
        # Automatisch Aktuelle phpMyAdmin-Version ermitteln
        VERSION=$(wget -q -O  /tmp/phpMyAdmin_Update.html http://www.phpmyadmin.net/home_page/version.php && sed -ne '1p' /tmp/phpMyAdmin_Update.html);
fi

if [ $VERSION ] && [ $MYVERSION ]
then
        if [ $MYVERSION != $VERSION ]
        then
                cd $ORDNER;
                MYORDNER=`pwd`;
                if [ $MYORDNER != $ORDNER ]
                then
                        echo "phpMyAdmin Update: Fehler beim Wechseln des Verzeichnis";
                        pwd;
                else
                        wget --directory-prefix=$ORDNER http://downloads.sourceforge.net/project/phpmyadmin/phpMyAdmin/$VERSION/phpMyAdmin-$VERSION-all-languages.tar.bz2
                        if [ -f "$ORDNER/phpMyAdmin-$VERSION-all-languages.tar.bz2" ]
                        then
                                tar xjvf phpMyAdmin-$VERSION-all-languages.tar.bz2
                                mv $ORDNER/$PMA/config.inc.php $ORDNER/phpMyAdmin-$VERSION-all-languages/
                                rm -R $ORDNER/$PMA
                                mv $ORDNER/phpMyAdmin-$VERSION-all-languages $ORDNER/$PMA
                                chown -R $USER:$GROUP $ORDNER/$PMA
                                rm phpMyAdmin-$VERSION-all-languages.tar.bz2
                                echo "Eigene Version:   $MYVERSION";
                                echo "Update-Version:   $VERSION";
                                echo "Das phpMyAdmin-Update auf Version " $VERSION " wurde erfolgreich im Ordner " $ORDNER " durchgeführt!"
                        else
                                echo "phpMyAdmin Update: Fehler beim Download des Paketes";
                        fi
                fi
        fi
else
        echo "phpMyAdmin Update: Version konnte nicht festgestellt werden.";
fi

Damit ich das Update per Cronjob durchführen kann und nicht jeden Tag das Paket neu installiere, habe ich einen Check eingefügt, der die installierte Version mit der neusten Version vergleicht und nur neuere Versionen installiert. Außerdem habe ich in dem Skript das phpMyAdmin-Verzeichnis variabel gemacht.

[Update]
Ich habe die Ausgaben angepasst, damit der cronjob nur noch bei Fehler oder erfolgreichem Update eine Email verschickt.