Ich habe 10 WordPress Blogs die ich betreue und ich habe die Nase voll gehabt diese alle immer per FTP zu aktualisieren oder das „Auf-Gutglück-Online-Update“ zu nutzen.

Also habe ich mich mit meinen rudimentären Linux-Kenntnissen mal ans Werk gemacht und ein Script gebastelt und es mit WordPress 3.2 getestet.


# Anfang
SRVPATH='/srv/www/vhosts'
HOMEPATH='/home/user'
# Hier die Pfade definieren in dem sich die ganzen Webfolder befinden und das Homeverzeichnis des SSH Users

cd $HOMEPATH/
rm -r wordpress/
rm wordpressupdate.tar.gz
# Evtl vorhandenes altes WordPressverzeichnis/Sicherung aus dem Homeverzeichnis entfernen

wget http://static.wordpress-deutschland.org/de-edition/latest.zip
unzip latest.zip
rm latest.zip
cd wordpress/
rm wp-config-sample.php
cd wp-content/
rm -r plugins/
# aktuelles deutsches WordPress runterladen, entpacken, Archiv löschen
# Config-Beispiel und Plugins (Akismet und Hello) löschen

cd $HOMEPATH/
mysqlcheck --auto-repair --check --optimize --databases db1
mysqldump --databases db1 > db_db1.sql
mysqlcheck --auto-repair --check --optimize --databases db2
mysqldump --databases db2 > db_db2.sql
# db1 und db2 optimieren und sichern. beliebig erweitern

nice -20 tar -czf wordpressupdate.tar.gz $HOMEPATH/db_db1.sql $HOMEPATH/db_db2.sql $SRVPATH/web1/ $SRVPATH/web2/
# Datenbanken und Webfolder sichern (hier web1 und web2) beliebig erweitern

rm db_db1.sql
rm db_db2.sql
# die ungepackten Datenbanksicherungen löschen - ist ja nun alles in wordpressupdate.tar.gz

cp -r $HOMEPATH/wordpress/* $SRVPATH/web1/
cp -r $HOMEPATH/wordpress/* $SRVPATH/web2/
# hier werden die aktuellen WordPressdatein, welche gerade runtergeladen wurden
# in das entsprechende Webverzeichnis (web1 und web2) geschrieben
# evtl muss man die Pfade noch anpassen wenn /blog/ oder /wordpress/ genutzt wird
# beliebig erweitern
# Ende

Nun ist alles aktualisiert und man muss nur noch den entsprechenden wp-admin aufrufen und schauen ob alles läuft 🙂

P.S.: Verwendung auf eigene Gefahr! Das Script lässt sich sicher noch vereinfachen – aber ich bin ja auch nur ein Linux-Laie. Man braucht natürlich einen SSH Zugang zum Server und entsprechende Rechte.