MySQL Datenbanken einzeln sichern

Möchte man mittels „mysqldump“ die einzelnen Datenbanken einer MySQL-Installation sicheren, so sähe das so für eine Datenbank in etwa so aus:

mysqldump -u root -p<passwort> --result-file=example.sql --databases example

Packt man das nun ein Skript, muss jede Tabelle von Hand in dieses Skript eintragen werden. Allerdings könnte man das ganze auch über den SQL Befehl „SHOW DATABASES“ lösen und das ganze in ein automatisches Skript gießen. Auf der Webseite dev.mensfeld.pl findet man ein solches Skript. Ich habe das ganze kleineren Modifikationen unterzogen (so wird z.B. die „performance_schema“ Tabelle nicht mitgesichert) und auf GitHub zur Verfügung gestellt.

Popular Convention

Das schöne an zentralen Sammlungen ist das man sie relativ einfach auswerten kann. In diesem Fall geht es um die Auswertung der GitHub Repositories. Wie der Name „Popular Convention“ andeutet geht es darum aus den Quelltexten bestimmte Informationen über bevorzugte Konventionen wie z.B. Leerzeichen vs. Tabs zu extrahieren.

Popular Convention und Scala

Popular Convention und Scala

Das Ergebnis kann man sich auf der Webseite http://sideeffect.kr/popularconvention/ für die Sprachen Javascript, Java, Python und Scala anschauen. Die Software zur Auswertung ist dabei freie Software und steht unter der MIT Lizenz und kann unter https://github.com/outsideris/popularconvention bezogen werden.

Bashskript zur Aktualisierung von Repositories

Bei mir auf der Festplatte liegen einige Quelltext in Form von Subversion und Git Repositories. Da es mühsam wäre jedes einzelne Repository zu aktualisieren, habe ich mir ein kleines Skript geschrieben, welches diese Aufgabe abnimmt:

#bash

#Update repositories script
#Copyright (c) 2012 by seeseekey <>
#
#This program is free software: you can redistribute it and/or modify
#it under the terms of the GNU General Public License as published by
#the Free Software Foundation, either version 3 of the License, or
#(at your option) any later version.
#
#This program is distributed in the hope that it will be useful,
#but WITHOUT ANY WARRANTY; without even the implied warranty of
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#GNU General Public License for more details.
#
#You should have received a copy of the GNU General Public License
#along with this program.  If not, see <http://www.gnu.org/licenses/>.

SCRIPTPATH=$(pwd);

#Git
for directory in `find $SCRIPTPATH -name ".git" -type d`;
do
  echo $directory;
  cd $directory/..;
  git pull;
done

#Subversion
for directory in `find $SCRIPTPATH -name ".svn" -type d`;
do
  echo $directory;
  cd $directory/..;
  svn update;
done

#Pfad zurücksetzen
cd $SCRIPTPATH;

Das Skript selbst steht dabei unter GPLv3 und kann auch direkt auf Github unter https://github.com/seeseekey/archive/blob/master/Bash/Git/updateRepositories.sh gefunden werden.

Git Repository umziehen

Manchmal möchte man ein Git Repository von Server A auf Server B umziehen (in diesem Fall von Google Code zu Github). Das ganze ist dabei relativ unproblematisch. Zuerst wird das bestehende Repository geklont:

git clone https://code.google.com/p/cscl/

In der GitHub Oberfläche erstellen wir nun ein neues Repository (in diesem Fall mit dem Namen „CSCL“). Danach entfernen wir den alten Remote und weisen einen neuen hinzu:

git remote rm origin
git remote add origin :seeseekey/CSCL.git

Mittels „git remote -v“ kann man sich die bestehenden „Remotes“ anschauen. Nachdem der neue Remote gesetzt wurden laden wir das Repository (mittels „push“) bei GitHub hoch:

git push -u origin master

Damit ist der Umzug abgeschlossen.

Weitere Informationen gibt es unter:
https://help.github.com/articles/removing-a-remote

Gesetze in Git

Manchmal gibt es seltsame Ideen, wie z.B. sämtliche Gesetze in ein Git Repository zu packen. Was auf den ersten Blick skurril klingt, hat aber durchaus einen interessanten Nebenaspekt. So kann man bereits heute die Gesetze im Internet einsehen. Das Git Repository hat allerdings den Vorteil, dass man nun auch die Änderungen der Gesetzte verfolgen kann. Wer sich das ganze anschauen möchte findet das Repository unter https://github.com/bundestag/gesetze.

Weitere Informationen gibt es unter:
http://www.golem.de/news/bundesgit-ein-git-repository-fuer-deutsche-gesetze-1208-93709.html