Kategorie-Archiv: howtos

LAN vor WLAN im NetworkManager

Mein Arbeitsnotebook ist aus Performancegründen meistens per Kabel am Netzwerk angeschlossen, für die Mobilität im Büro besteht zusätzlich eine WLAN-Verbindung zum selben Netzwerk. Beide Verbindungen werden vom NetworkManager verwaltet, allerdings kann man hier keine Priorisierung einstellen, was zu folgender Routing-Tabelle führt:

Kernel IP routing tableDestination     Gateway         Genmask         Flags Metric Ref    Use Iface0.0.0.0         10.0.0.1        0.0.0.0         UG    0      0        0 wlan00.0.0.0         10.0.0.1        0.0.0.0         UG    0      0        0 eth010.0.0.0        0.0.0.0         255.255.0.0     U     0      0        0 wlan010.0.0.0        0.0.0.0         255.255.0.0     U     0      0        0 eth0

Die Metric steht bei beiden Interfaces auf 0, weshalb nicht eindeutig festgelegt ist, wo der Traffic nun rausgeht. Das System nimmt die erste Route, die in diesem Falle über das WLAN läuft.Um dieses Problem zu umgehen, habe ich ein NetworkManager-Script gebastelt. Dies muss im Verzeichnis /etc/NetworkManager/dispatcher.d/ liegen und für root ausführbar sein.

#!/bin/sh#wireless-metric.sh - NetworkManager script#sets a higher metric for wireless connections to prioritize a wired connection#metric that will be used for the wireless connectionMETRIC=100#check input parametersif [ -z "$1" -o -z "$2" ]; thenecho "This script is meant to be run by the NetworkManager";echo "Syntax: $0 <device> <up/down>"exit 1fidevice=$1updown=$2#exit if the current connection isn't a wireless oneiwconfig $device > /dev/nullif [ $? -eq 161 ]; thenexitfi#get default route and local network addressdefaultgw=`ip route|grep default.*$device|awk '{print $3}'`localnet=`ip route|grep $device|grep -v default|head -n1|awk '{print $1}'`#delete the routes for the device and add new ones with the higher metricif [ "$updown" = "up" ]; thenroute del -net $localnet dev $deviceroute add -net $localnet dev $device metric $METRICroute del -net 0.0.0.0/0 gw $defaultgw dev $deviceroute add -net 0.0.0.0/0 gw $defaultgw dev $device metric $METRICfi

Nachdem ich die WLAN-Verbindung getrennt und wieder aufgebaut habe, finde ich nun eine eindeutige Routingtabelle vor:

Kernel IP routing tableDestination     Gateway         Genmask         Flags Metric Ref    Use Iface0.0.0.0         10.0.0.1        0.0.0.0         UG    100    0        0 wlan00.0.0.0         10.0.0.1        0.0.0.0         UG    0      0        0 eth010.0.0.0        0.0.0.0         255.255.0.0     U     100    0        0 wlan010.0.0.0        0.0.0.0         255.255.0.0     U     0      0        0 eth0

Das Script wurde getestet unter Debian 7.1 wheezy AMD64 mit NetworkManager Version 0.9.4.0-10.

Debian-Paketlisten sichern und wiederherstellen

Für den Umzug auf neue Hardware möchte ich meine installierten Pakete auch auf dem neuen System installieren. Dazu sichere ich die Paketlisten mit dpkg. Dabei geht allerdings die Information verloren, ob ein Paket manuell oder aufgrund von Abhängigkeiten automatisch installiert wurde. Mit apt-mark lässt sich diese Information ebenfalls speichern.Paketliste sichern:

dpkg --get-selections > packages.listapt-mark showauto > packages_auto.lstapt-mark showmanual > packages_manual.lst

Paketliste wiederherstellen:

dpkg --set-selections < packages.listapt-get -u dselect-upgradeapt-mark auto `cat packages_auto.lst`apt-mark manual `cat packages_manual.lst`

Kurztipp: Mit Bash neuste Datei(en) in einem Verzeichnis finden

In meinem Fall möchte ich den aktuellsten MySQL-Dump ermitteln.

ls -tl /var/backups/mysql/*.sql.gz|head -n1|awk '{print $8}'

Um z.B. die drei aktuellsten Dateien zu finden, verwendet man head -n3.

Sun JRE unter Ubuntu 10.10

Canonical hat in der aktuellen Ubuntu-Version die Javapakete standardmäßig entfernt. Man wird gebeten, die freie Laufzeitumgebung aus dem OpenJDK-Projekt zu verwenden. Die Pakete der originalen Sun-JRE lassen sich dennoch recht einfach nachinstallieren:

sudo echo "deb http://archive.canonical.com/ubuntu maverick partner" >> /etc/apt/sources.list.d/canonical-partner.listsudo apt-get updatesudo apt-get install sun-java6-jre sun-java6-plugin

Freunde der GUI (hier Gnome) gehen folgendermaßen vor:

  • Im Gnome-Menü unter System/Systemverwaltung die Synaptic-Paketverwaltung starten.
  • Im Programmenü auf Einstellungen/Paketquellen klicken.
  • Den Tab Andere Software auswählen.
  • Häkchen bei Canonical-Partner setzen.
  • Nach einem Klick auf Schließen in der Menüleiste auf Neu laden klicken.
  • Jetzt lassen sich die Pakete sun-java6-jre und sun-java6-plugin über die Paketverwaltung installieren

Kurztipp: Amavisd-new und Bitdefender for Unices

Nach einem Update auf die 64Bit-Version von Bitdefender for Unices funktionierte die Regex nicht mehr, die Amavisd-new ( hier 2.6.1 auf Debian Lenny) verwendet, um aus dem Virenscanner-Output das Scanergebnis zu lesen.Im Syslog erscheint dazu:

Aug 22 14:11:35 www amavis[26474]: (26474-01) (!!)BitDefender av-scanner FAILED: /usr/bin/bdscan unexpected exit 0, output="BitDefender Antivirus Scanner for Unices v7.90123 Linux-amd64\nCopyright (C) 1996-2009 BitDefender. All rights reserved.\n\nInfected file action: ignore\nSuspected file action: ignore\n/var/lib/amavis/tmp/amavis-20090822T141130-26474/parts/p001  ok\n\n\nResults:\nFolders: 0\nFiles: 1\nPacked: 0\nArchives: 0\nInfected files: 0\nSuspect files: 0\nWarnings: 0\nI/O errors: 0\n" at (eval 86) line 527.

Kurztipp: Java erkennt Timezone nicht richtig unter Debian & Co.

Damit ich es nicht vergesse und andere das Problem vielleicht auch haben:Unter Debian tauchte das Problem auf, dass sämtliche Zeiten nicht der Sommerzeit entsprachen und somit um eine Stunde versetzt waren.Da dies in vielen Fällen (z.B. Logging) zu Problemen führen kann, sollte eine Lösung her.

Internetsperren umgehen: Linux-Terminal schlägt Windows-GUI

Dass die angedachten und bereits vom Kabinet abgesegneten DNS-Sperren leicht zu umgehen sind, ist vielen bekannt.Dass es aber innerhalb von Sekunden zu realisieren ist, weiß vielleicht noch nicht jeder meiner Besucher.Anbei zwei Videos, eins für Linux, eines für Windows.UPDATE: Da in der Auflistung ja noch mindestens Mac OSX fehlte, hat Diazepam eine “Anleitung” dafür nachgeschoben und auch sogleich den Thron erobert. (Aufgrund von Suchmaschinen und Feedcrawlern werde ich aber den Postttitel nicht mehr ändern.)

Multi-(Sub)Domain-WordPress

Eric Range hat in seinem Blog eine ziemlich einfache Lösung vorgestellt, mit der man mit einer WordPressinstanz mehrere Domains bewirten kann, die aber unter jeder Domain als eigenständiger Blog (User, Theme, aktivierte Plugins, Settings usw.) agiert.

Multi-(Sub)Domain-WordPress @ Open Sourced Brain.

Eigentlich will ich mir hier das nur merken, weil ich das bei Gelegenheit mal testen will… Falls es doch noch jemand anderen interessiert: Umso besser! 🙂