Mit rsync automatisches Backup auf ein NAS Speicher

Im folgenden erkläre ich wie man seine lokalen Ordner mit einem einfachen Script mittels rsync auf ein NAS sichern kann. Zudem wird das Script nur ausgeführt wenn ich mich im richten WLAN befinde.

Zuerst benötigt man dafür auf dem NAS so genannte “Module” für Rsync. Das sind freigegebene Ordner. Diese kann man sich mit ssh unter /etc/rsyncd.conf anschauen oder bei qnap unter Privilegieneinstellungen >> Freigabe-Ordner (shared folders). Das editieren der rsyncd.conf ist nicht zu empfehlen, da diese z.B. bei der Vergabe eines neuen Passworts für rsync automatisch zurückgesetzt wird bzw. durch Firmware updates auf den meisten NAS Speichern verändert werden könnte.

Bei Qnap könnt ihr Rsync unter der App “Sicherungsstrategien” oder “Hybrid Backup – Sync beta” aktivieren. Dort wird auch das Passwort vergeben. Alternativ kann auch ein SSH User verwendet werden, jedoch ist bei Qnap das nur mit dem Admin User möglich. Ansonsten muss bei Qnap ein anderer SSH Server installiert werden.

Aber nun zum eigentlichen rsync aufruf. Zum Testen könnt ihr folgendes verwenden: Continue reading “Mit rsync automatisches Backup auf ein NAS Speicher”

Docker

Was bringt einem Docker? Docker isoliert z.B. einen Jenkins in einem Container auf deinem Ubuntu Server und ermöglicht es dazu noch weitere Anwendungen in anderen Containern bereitzustellen.

Installation

Aktuell wird Windows von Docker nicht unterstützt. Die folgende Anleitung beschreibt die Installation von Docker auf einem Ubuntu 14.10 Server. Einen solchen Server kann man sich einfach mit Hilfe z.B. der Virtualbox lokal auf seinem Rechner einrichten. Dazu benötigt man ca. 10 GB Festplatten Platz und genug RAM damit die Virtuelle VM nicht zu langsam ist.

Wer noch Ubuntu <= 13.10 verwendet sollte die Anmerkungen unter der Docker URL befolgen.

Docker kann einfach mit dem Tool “wget” heruntergeladen werden und mit sh wird der Installationsprozess gestartet:

Validieren kann man die Installation mit:

Erste Schritte

Um die ersten Kenntnisse und Schritte in Docker zu lernen empfehle ich das Online Tutorial von Docker:

https://www.docker.com/tryit/

Ubuntu /Linux find / install *.deb / install MongoDB / list update packages

Install /List Update Packages

Debian Packages können mit

installiert werden.

Eine Auflistung aller Packages für die ein Update vorliegt, kann mit Hilfe von -u erreicht werden:

Find

Suche funktioniert einfach mit find:

/ => Gibt an wo gesucht werden soll, in diesem Fall ab root
-name => Es soll nach einem Namen gesucht werden, case sensitive Suche ist mit -iname möglich
‘gesuchterName’ => Erklärt sich von selbst

-type d => Gibt den Typ an d=directory, l=>link, f=filename

MongoDB

Continue reading “Ubuntu /Linux find / install *.deb / install MongoDB / list update packages”

Ubuntu und Kubuntu "Hardy Heron" Countdown-Grafiken

Es gibt für die kommende Ubuntu und Kubuntu Version “Hardy Heron” Countdown-Grafiken. Der Javascript Code für die offizielle Ubuntu Countdown-Grafik lauter:

<script src=”http://www.ubuntu.com/files/countdown/display.js” type=”text/javascript”></script>

User haben dann noch 2 weitere Countdown-Grafiken erstellt. Für Kubuntu:
Continue reading “Ubuntu und Kubuntu "Hardy Heron" Countdown-Grafiken”

Ant unter Ubuntu installieren

Ant von http://ant.apache.org/ herunterladen und entpacken.

Ihn meinem Beispiel habe ich es ihn “/opt/” entpackt und in “ant” umbenannt. Zuvor habe ich noch mit “sudo apt-get install ant” die 1.6.5 Version installiert.

Um nun die neue Version zu nutzen muss man Variablen setzen.
Hierzu die Datei “~/.profile” aufrufen und am Ende folgendes eintragen:

Damit sind die Variablen auch nach einem Neustart gesetzt.

Nun kann man Ant mit der Eingabe von “ant” in die Konsole nutzen. “ant -version” gibt die aktuelle Version aus.

Subversion Repository erzeugen

Um ein Subversion Repository zu erzeugen benötigt ihr einen Subversion Server, eine Anleitung dazu findet ihr mit Google oder für Suse und Plesk unter http://www.fornex.de/?p=7. Für Ubuntu User empfiehlt sich die Ubuntuuser Wiki – Thema: Subversion.

Zuerst müsst ihr ein Verzeichniss für das SVN (Subversion)anlegen. Wenn ihr z.B. mehrere Repositorys haben möchtet, um zu verhindern das bei Problemen mehrere Projekte gefährdet sind. Müsst ihr den folgenden Schritt jedesmal wiederholen.

svnadmin create --fs-type fsfs /var/local/svn

oder
svnadmin create /var/local/svn

Das erste sollte man anwenden wenn bei der Anwendung des zweiten folgender Fehler kommt:

svnadmin create /home/svn/
svn: Berkeley DB error while creating environment for filesystem /home/svn/db:
Invalid argument
svn: bdb: Berkeley DB library configured to support only DB_PRIVATE environments

Als nächstes geben wir dem Verzeichniss Schreibrechte:

chown -R (username):(Gruppe zu der der user gehöhrt) /var/local/svn

Nun müsst ihr ihn eure conf datei gehen für den apache. Wenn ihr mehrer Domains benutzt findet ihr sie meistens in einem Unterverzeichniss der Domains. Damit könnt ihr das Repository nur einer bestimmten Domain zuweisen.

Das tragt ihr dann am Ende der Datei ein, aber noch vor dem letzten Schlusstag in der Datei.

Danach folgenden Befehl benutzen um einen User zu erstellen. -c löscht alle bisherigen User. Der Pfad ist die datei wo der Zugang gespeichert wird, sie muss mit dem der Datei über einstimmen die man oben in die Apache conf geschrieben hat.

htpasswd2 -c /etc/apache2/dav_svn.passwd ein-Nutzer

Danach den Apache Restarten. Sollte htpasswd2 nicht funktionieren, mal htpasswd versuchen.

Nun, nur noch ein Import machen und wir sind fertig.

Dazu erstellen wir mit mkdir ein Projektverzeichniss, welches wir im folgendem Importbefehl angeben werden:

Bei http://local…. localhost und den teil danach durch die Domain ersetzen in deren conf man den SVN eintrag gemacht hat. Der Teil nach Location bildet dan den Rest der Adresse.

Z.B. die Domain testuser.de hat im < Location /svn/zwei > stehen dann heißt die http:// Adresse: http://testuser.de/svn/zwei .

So nun habt ihr ein Repository erstellt und ein Projekt eingefügt.

Für Subversion gibt es auch eine nettes Webinterface, das ist aber ein anderes Thema.

Backup-Shell Script für Linux Server Teil 1

Mein Anbieter macht alle 24h eine Sicherung, leider wird dann das ganze System zurück gestellt. Was nun wenn man nur eine Sicherung der Datenbank haben möchte oder bestimmter Ordner.

Man kann sich entweder jeden tag einloggen und die Daten kopieren oder ein Backup Script dafür schreiben.

Ich habe ein solches Script geschrieben.

Wichtig ist ein Ordner der zum Beispiel beim Backup des Anbieters nicht überschrieben wird, oder bei Neuinstallationen.

  1. In diesen Ordner wechsel und folgendes eingeben
  2. mkdir backup
    cd backup

  3. Dann erstellen wir eine Datei und öffnen sie gleich
  4. vim sicherung.sh

  5. Dann drücken wir “i” und geben folgendes ein
  6. #!/bin/sh

  7. Danach müssen wir den letzten Ordner am Tag löschen und neu erstellen. Ich geh in diesem Beispiel von 6 Backups pro Tag aus. “rm” bedeutet löschen und “mkdir” bedeutet Ordner erstellen. Das “-R” bedeutet “rekursiv” und wird benötigt um Dateien im Ordner mit zu löschen sowie Unterordner. Bei (Pfad)
    den Pfad vom Wurzelverzeichnis zum Ordner Backup eintagen.
  8. rm -R /(Pfad)/backup/today/6
    mkdir /(Pfad)/backup/today/6

  9. Nun verschieben wir die Daten um eins nachhinten
  10. mv /(Pfad)/backup/today/5/* /(Pfad)/backup/today/6
    mv /(Pfad)/backup/today/4/* /(Pfad)/backup/today/5
    mv /(Pfad)/backup/today/3/* /(Pfad)/backup/today/4
    mv /(Pfad)/backup/today/2/* /(Pfad)/backup/today/3
    mv /(Pfad)/backup/today/1/* /(Pfad)/backup/today/2

  11. Nun das Script in den Ordner wechseln lassen und das MySQL Dump ausführen. Damit wir die Sicherung später zu ordnen können schreiben wir noch ein Log dazu.Welches das Datum und die verbrauchte Zeit speichert.
    (pw) bedeutet hier das Passwort eintragen, (user) den db user dazu.

  12. cd /
    (Pfad)/backup/today/1
    echo "Start Dump" >> log.txt
    times >> log.txt
    mysqldump -u (user) -p
    (pw) --all-databases > sql_sicherung_5.txt
    echo "Dump Done" >> log.txt
    times >> log.txt
    echo "Datum" >> log.txt
    date >> /(Pfad)/backup/today/1/log.txt

  13. So jetzt noch “ESC” und “:wq” eingeben und die Datei ist gespeichert und du befindest dich wieder in der Konsole.