Lokales Git Repository auf einen Server verschieben

Als erstes erstellen wir auf dem Server ein leeres Repository

besn@server:~$ mkdir -p ~/git/lerl
besn@server:~$ cd ~/git/lerl/
besn@server:~/git/lerl$ git init --shared --bare
Initialized empty shared Git repository in /home/besn/git/lerl/

Dann stellen wir in dem lokalen Repository den Server als Remote Ziel ein

besn@client:~/lerl$ git remote add origin server:~/git/lerl
besn@client:~/lerl$ git push origin master
Counting objects: 50, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (43/43), done.
Writing objects: 100% (50/50), 95.98 KiB, done.
Total 50 (delta 2), reused 0 (delta 0)
To server:~/git/lerl
 * [new branch]      master -> master

Debian Squeeze + DRBD + Pacemaker Tutorial

Vorbereitung

Ich benutze 2 Debian Systeme (phobos und deimos) für diese Installation. Die Systeme sind mit einer Netboot-CD mit einem Minimalsystem installiert und bis auf das LVM (das es später um einiges leichter macht neue Platten in das System oder ins DRBD einzubinden) habe ich nicht viel abweichend installiert.

Jedes System hat 2 Netzwerkinterfaces (eines für den “normalen” Netzwerktraffic und eines für die direkte übertragung der DRBD-Daten. Alternativ könnte man die beiden Interfaces auch als bond redundant ans Netzwerk anbinden und die DRBD Kommunikation über ein seperates VLAN laufen lassen, aber das heb ich mir vielleicht für ein anderes Tuturial auf ;)

In meinem Setup hat jeder Server auch 2 Festplatten (eine für das System und eine für die DRBD-Daten). Durch das LVM ist das zwar nicht notwendig, aber aus Performancegründen empfiehlt es sich die Systemdaten von den DRBD Daten zu trennen.

Continue reading

Einen Haufen Dateien zusammenpacken und gleichzeitig auf eine andere Maschine schieben mit tar und netcat

Du musst ein Backup von einem Verzeichnis auf einem Linux/Unix Server anlegen, willst jedoch die Backupdaten (nicht einmal temporär) auf der Maschine ablegen (weil der Platz nicht ausreicht oder der einzige freie Space auf der Kiste eine DRBD Partition ist die zwar dein Backup redundant auf dem 2. Knoten verfügbar macht aber damit den ganzen Prozess ausbremst)?

Kein Problem, alles was du dazu brauchst ist TAR und Netcat das heutzutage in jeder Linux/Unix Distribution enthalten ist oder sich recht einfach nachinstallieren lässt (zur not per Hand von Source).

Und dann geht alles ganz einfach:

besn@target:~# nc -l -p 1234 > meinbackup.tar.bz2
besn@source:~# tar -cjf - wasichsichernwill | nc 192.168.0.27 1234 -q 10

Du kannst die beiden Befehle natürlich noch erweitern, ich verwende gerne Pipe Viewer um zu sehen wie weit der Transfer schon ist bzw. wie schnell er ablauft bzw. wie viel mir die Komprimierung on the fly bringt.

Selbst signierte Zertifikate erzeugen

Das ist wiedermal mehr ein Gedächtnisstützenpost für mich, damit ich nicht immer googlen muss wenn ich ein SSL Zertifikat für eine Webseite erzeugen will:

# Zertifikats Key erzeugen
openssl genrsa -des3 -out domainname.at.key 2048
# Passwortgeschützten Key kopieren
cp domainname.at.key domainname.at.key.orig
# Key ohne Passwort erzeugen
openssl rsa -in domainname.at.key.orig -out domainname.at.key
# Zertifikat erzeugen
openssl req -new -x509 -key domainname.at.key -out domainname.at.crt -days 3650

Damit ist in ein paar einfachen Schritten ein selbst signiertes SSL Zertifikat erzeugt das für 10 Jahre gültig ist und für die meisten privaten Aufgaben vollkommen ausreicht.

Hau weg die .htpasswd: Apache Authentifizierung mit mod-auth-mysql

Noch aus den Urzeiten der Webserver stammt die HTTP-Authentifizierung mit der man sich im Browser gegenüber dem Webserver als jemand Berechtigter ausweisen kann. Das Verfahren mag ein wenig angestaubt wirken und die Fenster könnten sie auch mal schöner Designen aber solange es keinen Nachfolger für die RFC 2617 gibt hat sich etwas an der Art wie man die Passwörter speichert geändert. Fast alle Tutorials zur Absicherung des Indianers erklären wie ihr mithilfe von htpasswd eine Datei erzeugen und für den Ordner mit den Partyfotos das man an eine Handvoll Leute weitergibt reicht das ja auch vollkommen aus. Aber wenn man ein paar Subversion Repos und Trac Installationen mit einem haufen Usern hat wünscht man sich eine Lösung bei der die User in einer Datenbank liegen und man das ganze über ein Webinterface verwalten kann. Und genau das ist mit dem Apache Modul mod-auth-mysql.

Continue reading

Synaptics Touchpad Tapping unter Linux deaktivieren

Als Laptopuser unter Linux habe ich das altbekannte Problem das wenn ich etwas auf der Tastatur tippe und am Touchpad ankomme ein Klick ausgelöst wird. Aber es gibt eine recht einfache Lösung um das Tapping zu deaktivieren wenn man auf der Tastatur tippt.

Mach zuerst eine Sicherungskopie von /etc/X11/xorg.conf, danach öffne die Datei mit einem Editor:

sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.backup
sudo editor /etc/X11/xorg.conf

Such nach Section “InputDevice” und füge die Folgende Zeile zwischen dem Section “InputDevice” und End Section:

Option "SHMConfig" "true"

Damit kann syndaemon, den wir im nächsten Schritt beim starten von GNOME laden, auf die Einstellungen des Synaptic Treibers zugreifen. Bevor das aber funktioniert musst du aber gdm neustarten. Schließe vorher alle Programme die du offen hast und gib dann in einem Terminal sudo /etc/init.d/gdm restart ein. Damit wird der X-Server neugestartet und die Änderungen die du an der xorg.conf vorgenommen hast sind aktiv.

Um das ganze zu testen öffne nach dem Relogin ein Terminal und führe /usr/bin/syndaemon aus. Öffne als nächstes gedit und tippe ein wenig herum. Tipp dann kurz danach auf das Touchpad. Wenn alles funktioniert sollte das Touchpad erst 2 Sekunden nachdem du eine Taste gedrückt wieder funktionieren.

Damit syndaemon bei jedem Login automatisch gestartet wird, trag als Befehl /usr/bin/syndaemon -i 2 -t -d unter System => Einstellungen => Startprogramme ein.

Bei der Recherche zu dem Post ist mir ein Wiki Eintrag im Ubuntuusers Wiki aufgefallen der erklärt wie man automatisch das Touchpad deaktivieren kann wenn eine Maus angesteckt ist. Ich hab das selbst noch nicht ausprobiert, poste aber mal den Link.

TCP Window Scaling unter Linux deaktivieren

Weil ich vor kurzem mal wieder danach suchen musste wie man das TCP Window Scaling unter Linux deaktiviert, habe ich mir gedacht ich könnte die Lösung auch gleich hier posten.

Wie zeigt sich das?

Also wenn du auch das Problem hast das Webseiten wie Facebook (wobei da eigentlich eher der Static Server oder allgemein das CDN) oder DAUjones nicht vollständig laden (also die Seite nicht fertig läd und eventuelle nach ein paar Minuten der Timeout vom Browser kommt) dann sitzt du wahrscheinlich auch hinter einem Router der ein Problem mit “zu großen” Paketen hat.

Status des Window Scalings

Um herauszufinden ob das Window Scaling bei dir aktiv ist oder nicht gib in einem Terminal

sysctl -a | grep tcp_window_scaling

ein. In der Ausgabe halte ausschau nach

net.ipv4.tcp_window_scaling

. Wenn bei dir

net.ipv4.tcp_window_scaling = 0

steht, ist bei das Window Scaling schon deaktiviert.

Ausprobieren

Wenn du zuerst mal ausprobieren möchtest ob überhaupt das Window Scaling dein Problem ist kannst du das als root mit dem Befehl

sysctl -w net.ipv4.tcp_window_scaling=0

tun. Probier als nächstes, die problematischen Webseiten aufzurufen. Wenn das geholfen hat, kannst du zum nächsten Schritt weitergehen und diese Einstellung permament machen.

Permament Window Scaling deaktivieren

Das geht, wie bei Linux üblich, über ein Configfile. Öffne als root mit einem Editor deines Geschmacks die Datei

/etc/sysctrl.conf

und füge die Zeile

net.ipv4.tcp_window_scaling=0

in die Datei ein und speichere sie wieder und schon wird das Window Scaling beim nächsten start erst gar nicht aktiviert.

Und was mach ich mit einem Mac oder Windows?

Auf dieser netten Seite wird erklärt wie man das Window Scaling unter Mac OS und Windows abdrehn kann.

Weiteres Lesenswertes