Tag Archives: backup

WordPress Backup mittels rsync und ssh

WordPress Backup mittels rsync und ssh

WordPress Backup mit rsync über ssh

Gabelschlüssel am Hackenich hatte vor einiger zeit mal einen Artikel über das Backup-Erstellen geschrieben. Nachteil dieser Methode von damals ist sicher der enorme Speicherbedarf, der dabei entsteht. Hatte mir innerhalb weniger Wochen die komplette Platte zugeknallt. Da ist doch eine Anpassung angesagt gewesen.

Heute war es dann so weit und ich setzte mich daran ein Backupsystem zu erstellen das über rsync läuft und nicht so viel Datenmenge kreiert.

rsync erste Wahl beim Backup erstellen

rsync ist ein Programm, um Dateien zwischen lokalen oder über das Netzwerk erreichbaren Pfaden abzugleichen. Dabei werden zunächst die Größe und die Erstellungszeit der Dateien in Quelle und Ziel verglichen, so dass nur die Dateien behandelt werden müssen, bei denen es Änderungen gegeben hat. Sind Quelle und Ziel lokale Pfade, werden die betroffenen Dateien normal kopiert. Wenn auf Quelle oder Ziel aber per SSH oder über einen speziellen rsync-daemon zugegriffen wird, nutzt rsync zusätzlichen noch einen speziellen Delta-Transfer-Algorithmus, so dass nur die geänderten Teile der Dateien über das Netzwerk transportiert werden müssen.

Quelle: http://wiki.ubuntuusers.de/Startseite

Also rsync passt wie die Faust aufs Auge wenn es darum geht Sicherungen zu erstellen.

Wenn man also ein Verzeichnis, mittels SSH auf einen andern Server, kopieren will. Schaut der Befehl so aus:

# rsync -avze ssh /zu/kopierendes/verzeichnis benutzer@entfernterserver.de:/ziel/auf/server

Als bequemer Mensch will ich Automatismus

Genau, jeden Tag einen Cronjob um Mitternacht plus email was alles getan wurde.

SSH einrichten

Zuerst müssen wir also eine Authentifizierung über Public-Keys erstellen damit wir kein Passwort brauchen.

# ssh-keygen -t rsa

erstellt ein Schlüsselpaar. Bei dem wir die Passphrase leer lassen. Dann müssen wir den Schlüssel übertragen.

# ssh-copy-id -i ~/.ssh/id_rsa.pub benutzer@entfernterserver.de

Script erstellen

Jetzt brauchen wir noch ein Script, da es mir hier hauptsächlich darum geht ein WordPress Backup zu erstellen muss man auch die sql Tabelle mit sichern.

Starten des Editors

# nano /root/rsyncer

Folgenden Script eintragen. Natürlich an die eigenen Gegebenheiten anpassen.

#!/bin/sh

#mysql datenbanken exporieren. 
 mysqldump DATENBANKNAME -u MYSQLBENUTZERNAME -pPASSWORT > /var/www/wordpressbackup.sql

#rsync des Webverzeichnisses inc. logdatei erstellen
rsync -avze ssh /var/www/ benutzer@entfernterserver.de:/ziel/auf/server > /root/rsyncausgabe

#logdatei mailen
mail -s "rsync Ausgabe" meine@mailadresse.de < /root/rsyncausgabe

Erklärung:
Zuerst wird die mysql Tabelle in das zu sichernde Verzeichnis exportiert.
Dann wird alles übertragen und die Ausgabe in die Datei rsyncausgabe geschrieben. Diese wird wiederum als Mail an mich versendet.

Jetzt nur noch Benutzer und Rechte anpassen und das Script ausführbar machen

# chown root:root /root/rsyncer
# chmod 770 /root/rsyncer

Täglichen cronjob erstellen

Nun ist das Script erstellt und es kann ein cronjob eingerichtet werden. Wer nicht den vi Editor für crontab -e benutzen will, für den hab ich hier eine Anleitung geschrieben wie man auf den nano Editor wechselt.

Als root ausführen:

# crontab -e

und folgendes in die Tabelle um "@daily  /root/rsyncer" erweitern

# Edit this file to introduce tasks to be run by cron.
#
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
#
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').#
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
#
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
#
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h  dom mon dow   command

@daily                  /root/rsyncer

Damit wird jeden Tag, Punkt Mitternacht ein Backup unseres WordPress oder anderes erstellt.

Virenscan unter Linux

Virenscan unter Linux

Mittels clamav Datenträger unter Linux nach Viren durchsuchen

Neulich hatte ich den Fall das ich ein Backup eines Viren verseuchten PC machen musste. Doch das wieder aufzuspielen ist ja mehr als töricht. Schön das es unter Linux einen mächtigen Kommandozeilen Viren Scanner namens ClamAV gibt. Diese Anleitung bezieht sich wieder auf Arch Linux kann aber auf alle Distributionen übertragen werden.

Zuerst soll unser Paketmanager mal ClamAV installieren

pacman -S clamav

Nun geht es an die Konfiguration. Die sehr simpel ausfällt. Man muss nur in den beiden .conf jeweils die 8. Zeile wo Example steht auskommentieren. Also ein # davor setzten

nano /etc/clamav/clamd.conf
nano /etc/clamav/freshclam.conf

in der /etc/conf.d/clamav sollten die startoptinen auf "yes" gesetzt werden

nano /etc/conf.d/clamav
< # change these to "yes" to start 
START_FRESHCLAM="yes" 
START_CLAMD="yes"

jetzt kann mit

freshclam

die Virendatenbank aktualisiert werden. Ich bekam allerdings immer diese Fehlermeldung:

 WARNING: Clamd was NOT notified: Can't connect to clamd through /var/lib/clamav/clamd.sock 
connect(): No such file or directory

um das zu lösen führt man als root diesen Befehl aus:

touch /var/lib/clamav/clamd.sock && chown clamav:clamav /var/lib/clamav/clamd.sock

nun sollte alles so gehen wie wir es wollen.
Mit

clamscan

führt man den scan aus.

clamscan -r /

macht einen vollen systemscan

clamscan -ri /

zeigt nur die gefunden Viren verseuchten Dateien an
um zum Beispiel zurückzukommen: Ich habe den USB-Stick nach /mnt/ gemountet und wollte gleich die Treffer löschen lassen. Die --remove=yes Option sollte allerdings mit Vorsicht genossen werden. Aus Gründen die jeden klar sein sollten. Aber bei einem USB-Stick ist das egal.

clamscan -ri --remove=yes /mnt/

interessant ist noch die Option --move=DIRECTORY die die Infizierten Dateien in ein definierten Ordner verschiebt. Dazu muss aber der Benutzer in diesem Ordner Schreibrechte haben.

Der BKA-Trojaner

Der BKA-Trojaner
Der BKA-Trojaner

Hallo Leser,
bka-trojaner107
neulich kam ein Bekannter von mir vorbei. Ganz aufgelöst wurde mir ein Laptop gezeigt auf dessen Bildschirm ein Riesiges Fenster Prangte:

Bundespolizei Es ist eine ungesetzliche Tätigkeit enthüllt!

ein Schändliches Teil. Das mit der Angst der Leute vor Ausstoßung, Stigmatisierung und Strafverfolgung der Menschen spielt. Pfui. Sehr dreist ist so etwas. Zum Glück war der Computer bald wieder, dank einer Live CD von Arch Linux Flott gemacht. Hier in diesem Forum wird wohl auch erklärt wie es ohne Neuinstallation von Windows von statten geht aber von so was halte ich nichts. Hat bei diesen Computer auch gut gepasst weil ich ihn dann gleich auf eine 64bit Version aufsetzen konnte. Hier die schritte zum nachmachen für eine Sicherung der Benutzerverzeichnisse:

Zuerst die Live CD von Arch Linux runter laden und System starten.
Dann müssen mountpunkte für einen USB-Stick und die Windows Partition

mkdir /mnt/usb/ && mkdir /mnt/win/

Dann müssen beide eingehängt werden. Linux bezeichnet seine Laufwerke anders als Windows. sda ist z.B. die erste Festplatte heißt sda und die logischen Partitionen weden von 1-4 durchnummeriert, ab 5 kommen dann die virtuellen. Da auf diesen Laptop eine Windows-Rescue Partition auf der ersten Partition ist kommt unsere Windows auf sda2. gemountet wird mit

mount /dev/sda2 /mnt/win

zum nachschauen ob es die richtige war:

ls -l /mnt/win/

dann sollte der Inhalt eures Laufwerkes C:\ aufgelistet werden.
Jetzt hängen wir das den USB Stick ein. Wenn es nur eine Festplatte gibt wird der Stick sdb1 sein

mount /dev/sdb1 /mnt/usb

zum kopieren der Benutzerverzeichnisse muss nur:

cp -R /mnt/win/Users/ /mnt/usb/

wer komplett c:\ auf seinen Stick kopieren will:

cp -R /mnt/win/ /mnt/usb/

das Backup ist fertig. Evtl. erscheinen noch Fehlermeldungen wegen Symlinks aber das ist ok.
Jetzt

reboot

und wie gewohnt Windows neu Installieren.
Wen das Jetzt zu kompliziert ist und im Raum Neumarkt wohnt, kann sich gerne an mich wenden und ich mach das.
Wie unter Linux ein Virenscan durchgeführt werden kann erkläre ich hier:

Virenscan unter Linux

Ist praktisch um den so erstellten Backup zu überprüfen BEVOR er wieder mit Windows in Berührung kommt.
Man will doch eine neue Infektion vermeiden oder?

Ein kleines bash Script für eine tägliche WordPress Sicherung und übertragung via scp

Ein kleines bash Script für eine tägliche WordPress Sicherung und übertragung via scp

Vor einiger Zeit habe ich ja hier schon mal beschrieben wie man ein WordPress Backup unter Linux auf der Konsole erstellt und wieder zurückspielt. Da ich aber recht faul bin hab ich ein kleines Script geschrieben. Mein Server ist auf Debian umgezogen darum müssen evtl. die Pfade angepasst werden ebenso wie das mysql Benutzer Passwort. […]