Heute habe ich endlich mal das Update von WordPress 2.8 auf Version 2.8.2 vollzogen. Zum Glück habe ich mir vorher ein Backup angelegt da beim ersten Versuch mit der Vollversion von 2.8.2 einige PHP Fehlermeldungen bei Wiederinbetriebnahme auftraten.
Erst das Inkrementelle Update von 2.8 auf 2.8.1 und anschließend von 2.8.1 auf 2.8.2 hat ohne Probleme geklappt. Um für das Backup nicht jedes mal alles nachzuschlagen habe ich alle Schritte in ein Bash-Script gepackt. Es erstellt ein Backup der WordPress Installation und der Datenbank. In einem zentralen Backup Verzeichnis wird für jede WordPress Version ein eigenes Unterverzeichnis erstellt in dem dann alle Backups dieser Version landen.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | #!/bin/bash # author: Michael Prim # date: 25.07.2009 # contact: www.mprim.de # main webserver directory APACHE=/var/www # wordpress subfolder WP=wordpress # current WP version VERSION=`grep Version $APACHE/$WP/liesmich.html | head -n 1 | awk '{print $3}' | sed 's/\r//g'` # wp database DBUSER=username DBNAME=databasename # backup destination BACKUPMAINFOLDER=$HOME/BackupFolder BACKUPVERSIONFOLDER=$BACKUPMAINFOLDER/$VERSION BACKUP=$BACKUPVERSIONFOLDER mkdir -pv $BACKUP # timestamp every backup file will get TIMESTAMP=$(date +"%Y%m%d-%H_%M") # logfile LOG=blog.backup_$TIMESTAMP.log echo '--- backup blog files ---' cd $APACHE tar -czvf $BACKUP/blog.backup_$TIMESTAMP.tar.gz $WP &> $BACKUP/$LOG echo '--- dump SQL database - password required ---' cd $BACKUP mysqldump --add-drop-table -u $DBUSER -p $DBNAME --lock-tables=false | bzip2 -c > blog.backup_$TIMESTAMP.sql.bz2 |
Die Werte für VERSION,APACHE,WP,DBUSER,DBNAME
und BACKUPMAINFOLDER
müssen natürlich noch an die eigene Umgebung angepasst werden.
Um bei der Wiederherstellung die Rechte der Ordner der WordPress Installation zu erhalten sollte das Backup mit der Option -p
entpackt werden:
$ tar -xpzvf blog.backup_$TIMESTAMP.tar.gz |
[Update]
Nachdem in kurzer Zeit noch die Updates auf 2.8.3 und 2.8.4 erschienen sind, habe ich das Script erweitert. Die aktuelle Version wird jeweils aus der liesmich.html
ausgelesen. Diese liegt der deutschen WordPress Version und allen Updates bei.