MySQL: Mehrere vergleiche mit LIKE

Oft kommt es vor, dass man prüfen muss, ob verschiedene Werte in einem Datensatz vorkommen. Schwierig wird das, wenn das zu prüfende Feld den zu prüfenden Wert nicht ausschließlich enthält, sondern noch weiteren Text. In diesem Fall hilft LIKE nur, wenn man die Werte hardcoded in das Statement schreibt: weiterlesen

Server: Backup in die Cloud (Google Drive)

Ich habe mich ein reichliches Jahr um eine vernünftige Backup-Lösung für meinen Server gedrückt – eigentlich viel zu lange. Das leidige Problem ist: Woher nimmt man den Speicher, die Daten zu sichern? Nach einigem herumprobieren schien mir dann Google Drive am sinnvollsten, da es meines Wissens den größten kostenlosen Online-Speicher bietet und mir die 15GB momentan ausreichen. Mega bietet zwar erheblich mehr Speicherplatz, aber keinen Linux-Client, weswegen das für mich zu viel Aufwand bedeutet hätte.

Für meinen Ubuntu-Server musste also ein Google Drive-Client her. Das ist sehr einfach, denn es gibt ein Tool namens google-drive-ocamlfuse. Dieses Tool kann den Cloudspeicher direkt ins Dateisystem mounten. Also geht es los:

$ sudo aptitude install google-drive-ocamlfuse -y

Jetzt hat man zweierlei Möglichkeiten: Entweder man hat auf seinem Server eine grafische Oberfläche installiert, über die man per VNC oder ähnlichem zugreifen kann, oder man installiert das Programm auf einem Heimrechner. Denn beim ersten Ausführen von google-drive-ocamlfuse muss man sich in einem Webbrowser authentifizieren. Leute, die die 2-Schritte-Authetifizierung nutzen (mit Code per SMS oder Smartphone-App), haben dabei keinerlei Probleme.

Hat man sich für die Variante „Heim-PC“ entschieden, muss man anschließend den Ordner ~/.gdfuse auf den Server ins Homeverzeichnis des entsprechenden Users kopieren. Soweit so gut. Die Anmeldung ist vollzogen. Fehlt nur noch das Mounten.

Ich persönlich habe mir einfach im Home-Verzeichnis einen Ordner GoogleDrive angelegt, auf den gemountet wird:

$ cd ~
$ mkdir GoogleDrive
$ google-drive-ocamlfuse ./GoogleDrive

Damit ist der Online-Speicher einfach zu benutzen, wie ein normaler Pfad im Dateisystem. Mein Backup-Skript baut erst ein tgz-Archiv zusammen und sichert es dann:

#!/bin/bash cd /home/marco/Backup/auto # Das ist mein Backup-Verzeichnis für # die temporären Backups. curdate=$(date +%Y-%m-%d) # aktuelles Datum zum zurechtfinden echo ===== >> logfile echo $curdate Start Backup... >> logfile mkdir $curdate # Ordner für die Sicherung erstellen ... cd $curdate # ... und betreten # An dieser Stelle könnt ihr alles wichtige in den Ordner packen. # Wie wäre es beispielsweise mit einem MySQL-Dump? mysqldump -uBenutzer -pPasswort --all-databases | gzip -9 > mysqldump$curdate.sql.gz 1>/dev/null 2>>../logfile # Verzeichnis verlassen und packen cd .. tar cvzf serverbackup-$curdate.tgz $curdate 1>/dev/null 2>>logfile # Mounten von GoogleDrive google-drive-ocamlfuse /home/marco/GoogleDrive # Verschieben des Pakets in die Cloud mv serverbackup-$curdate.tgz /home/marco/GoogleDrive/Backups/ # Löschen des Ordners rm -rf $curdate 1>/dev/null 2>>logfile # Warten (es gibt immer eine gewisse Latenzzeit, bis das Dateisystem nicht # mehr "busy" ist) sleep 30 umount /home/marco/GoogleDrive 2>>logfile # und fertig 🙂 echo Fertig >> logfile weiterlesen