Vor kurzem hatte ich von den tollen Möglichkeiten von wget berichtet. Mittlerweile läuft mein Backup und für alle interessierten will ich noch meine Lösung in den Blog stellen.
Wer Wunder oder fantastische Shell-Skripting-Lösungen erwartet ist sicherlich falsch, aber es geht ja auch nur um Backups.
Ziel war das Backup von Webspace, bei dem nur FTP zur Verfügung steht. Zusätzlich habe ich mir noch lokal MySQL installiert und kann nun auch die Datenbanken entfernt sichern. Einfacher als lokale Perl oder sonstige Skripte (meiner Meinung nach).
Erst einmal das Skript:
#!/bin/bash
cat sites.lst | while read line; do
if [ '#' != `echo $line | cut -c 1,1` ]; then
echo $line
wget -mirror -X=log,logs,usage,cgi-bin ftp://"$line" -P page
fi
done
cat db.lst | while read line; do
if [ '#' != `echo $line | cut -c 1,1` ]; then
hostname=`echo $line | cut -d: -f1`
user=`echo $line | cut -d: -f2`
password=`echo $line | cut -d: -f3`
db=`echo $line | cut -d: -f4`
filename=`echo $line | cut -d: -f5`
mysqldump -h $hostname -u$user -p$password $db >
database/$hostname-$filename.sql
fi
done
Als Input dienen zwei Dateien (sites.lst und db.lst), die folgendes Format haben.
sites.lst
USERNAME:PASSWORD@HOSTNAME
db.lst
HOSTNAME:USERNAME:PASSWORD:DATABASE:FILE_DESCRIPTION
Wer es hilfreich findet, kann gerne einen Kommentar hinterlassen. Würde mich freuen zu hören, ob noch jemand diese Art der Lösung mag.
