Category Archives: Linux (Ubuntu)

WordPress Backup-Script [Update]

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.

TAB-Completition für ssh und scp

Wer täglich mehrmals mittels ssh oder scp auf die selben Server zugreift will nicht immer alle Daten neu eingeben. Je nach User und Server kann dies deutlich länger sein als in diesem Beispiel:

$ ssh useratwork@server.at.work:~/documents/myfile.txt .

Zunächst erstellt man eine Datei ~/.ssh/config und trägt dort die Zugangsdaten ein:

# ssh config file
 
Host homeserver
    HostName name.of.server
    User username
    CheckHostIP no
Host work
    HostName server.at.work
    User useratwork

CheckHostIP hat standardmäßig den Wert yes. Für einen Homeserver ohne statische IP und mit DynDNS sollte man diesen Wert auf no setzen. Sonst erhält man jeden Tag eine Sicherheitswarnung, dass sich die IP des Servers geändert hat.

Um die Auto-Vervollständigung der Befehle mittels TAB in der Shell zu ermöglichen fügt man in der .bashrc die folgenden Zeilen ein:

complete -W "homeserver work" ssh
complete -W "homeserver work" scp

Damit werden die Befehle ssh und scp um Wortlisten zur Auto-Vervollständigung ergänzt. Diese lässt sich nun wie üblich in der Shell nutzen. Somit ergibt sich:

$ ssh work:~/documents/myfile.txt .

SMC 7004BR – Barricade Broadband Router als Printserver

Der “SMC 7004BR” ist genauso wie mein “HP LaserJet 6P” ein Stück ältere aber zuverlässige Hardware. Inzwischen haben nur noch wenige Mainboards einen Parallelport (von Notebooks ganz zu schweigen) und somit lässt sich der Drucker über kurz oder lang nicht mehr überall anschließen. Ein Glück, dass der SMC 7004BR mit seinem Parallelport auch als Printserver im Netzwerk agieren kann.

SMC 7004BR

Am Router ist keinerlei Konfiguration nötig. Einfach den Drucker am Parallelport anschließen und einige Sekunden warten. Im Status vom Webinterface des Routers sollte nach kurzem “Printer – ready” stehen.

Linux

Die Einrichtung unter Linux erfolgt mit Hilfe von CUPS, das gegebenenfalls noch installiert werden muss:

$ sudo apt-get install cups

Anschließend wird der Drucker eingerichtet:

  1. CUPS-Webinterface starten: http://localhost:631
  2. Drucker hinzufügen auswählen.
  3. Als Gerät LPD/LPR Host or Printer auswählen.
  4. Als Geräte URL lpd://192.168.123.254/lp eintragen. 192.168.123.254 ist hierbei ab Werk die Standard-IP-Adresse des SMC 7004BR und kann im Webinterface des Routers überprüft bzw. geändert werden.
  5. Marke und Modell des Druckers auswählen und Konfiguration abschließen.
  6. Im CUPS-Webinterface sollte der Drucker nun im Reiter “Drucker” erscheinen. Bei Bedarf von dort aus eine Testseite drucken.

Windows Vista

Unter Windows Vista muss zunächst unter Systemsteuerung -> Programme und Funtionen -> Windows Funktionen ein- oder ausschalten -> Druckdienste der LPR-Anschlussmonitor installiert werden.

  1. Systemsteuerung -> Drucker öffnen und neuen Drucker hinzufügen
  2. Einen lokalen Drucker hinzufügen.
  3. Neuen Anschluss erstellen. Anschlusstyp: LPR Port
  4. LPD-Servername oder -addresse: 192.168.123.254 (siehe Linux)
  5. Name des Druckers oder der Druckerwarteschlange auf dem Server: lp
  6. Hersteller und Modell des Druckers auswählen und restliche Konfiguration abschließen.
  7. Bei Bedarf Testseite drucken.

Windows XP

Unter Windows XP sollte unter Systemsteuerung -> Software -> Windows Komponenten hinzufügen/entfernen gegebenenfalls überprüft werden ob alle Druckdienste installiert sind. Ansonsten verläuft die Installation analog zu Windows Vista.

Unnötige Pakete mit deborphan entfernen

Nach einem Ubuntu/Debian Distributionsupgrade gibt es immer einige Pakete, die nicht länger benötigt werden. Eigentlich sollten diese automatisch entfernt werden doch dies klappt nicht immer. Um Paketleichen aufzuspüren und zu entfernen bietet sich das Paket deborphan an. Es sucht nach nicht mehr länger benötigten Paketen und kann diese in Kombination mit apt-get auch deinstallieren.

$ sudo apt-get --purge remove `deborphan`

Dateien rekursiv löschen

Um rekursiv in einem Verzeichnis und allen Unterverzeichnissen alle Dateien mit der Endung .eg zu löschen mag einem zunächst

$ rm -r *.eg

in den Sinn kommen. Dies funktioniert leider nicht. Abhilfe schafft die Kombination aus find und rm

$ find . -name '*.eg' -exec rm {} \;