Categories
Allgemein Linux

Firefox 4 RC

Habe mir soeben den Release Candiate von Firefox 4 installiert. Bis jetzt alles sehr positiv. Er fühlt sich vorallem spürbar schneller an als der Vorgänger. Firefox Sync ist jetzt integriert. Schade ist allerdings, dass sich unter Ubuntu/Linux die Tabs und die Menüleiste nicht so verhalten wie bei der neuen Version unter Windows.

Praktisch sind die neuen “App”-Tabs mit denen man häufig benötigte Seiten “anpinnen” kann. Dabei fällt auf, das OpenNMS noch kein Favicon hat ;)

Categories
Linux

OpenNMS: Services löschen

Wenn man bei OpenNMS einige Services aus der poller-configuration.xml entfernt, werden diese zwar nicht mehr überwacht, tauchen aber nach wie vor in der Serviceliste des jeweiligen Interface auf (“Not Monitored”). Theoretisch sollte OpenNMS diese Services nach 5 Tagen (Default) entfernen. Ich bin mir allerdings nicht sicher ob diese dann komplett entfernt werden oder nur auf “Not Monitored” gesetzt werden. Die Doku bzw. einige Einträge auf der Mailingliste sind da etwas widersprüchlich – und 5 Tage warten wollte ich nicht.

Manuell können die Services im Webinterface gelöscht werden indem man auf das Interface geht, dann den Service auswählt und schließlich auf “Delete” klickt. Bei hunderten Interfaces ist das etwas mühsam. Daher habe ich folgendes Script gebastelt welches die gewünschten Services bei allen Nodes und Interfaces löscht (Benutzung auf eigene Gefahr!):

#!/bin/bash

for i in `psql -qAt -F";" -c 'select ipaddr,nodeid from ipinterface;' -d opennms opennms`; do
  IF=`echo $i | awk -F ";" '{print $1}'`
  NODE=`echo $i | awk -F ";" '{print $2}'`
  echo "deleting services from $IF on $NODE..."
  # entferne den Service "Qmail-queue" von allen Nodes und Interfaces
  /usr/share/opennms/bin/send-event.pl uei.opennms.org/nodes/deleteService \
  --service Qmail-queue \
  --interface $IF \
  --node $NODE
done;

Auf jeden Fall sollte man die zu entfernenden Services auch aus der capsd-configuration.xml herausnehmen – ansonsten werden diese immer wieder neu erkannt (wiederum als “Not Monitored”).

Categories
Linux

Ubuntu/Centos: /bin/sh Unterschiede

Mal wieder Zeit verplempert: Wenn man Shell-Scripts programmiert sollte man wissen welchen Interpreter man verwendet. Etwas achtlos verwendet man meist den Shebang “#!/bin/sh”. /bin/sh ist meist nur ein Link auf die jeweilige Default-Shell der Distribution.

Unter Centos/RedHat ist /bin/sh ein Link auf /bin/bash (die Bourne-Again-Shell):

[root@centos ~]# ls -la /bin/sh
lrwxrwxrwx 1 root root 4 Apr 28  2010 /bin/sh -> bash

Unter Ubuntu/Debian hingegen verlinkt /bin/sh auf /bin/dash (Debian-Almquist-Shell).

root@debian:~# ls -la /bin/sh
lrwxrwxrwx 1 root root 4 2010-11-02 16:47 /bin/sh -> dash

Aufgefallen ist mir der Unterschied beim Verwenden der Bash-Variable $UID. Die dash enthält diese Variable nämlich nicht. Weitere Unterschiede sind mir bisher nicht bekannt (habe aber auch nicht danach gesucht).

Categories
Linux Networking

Linux als Router (z.B. UMTS)

Zugegeben, ich arbeite nicht sooo oft mit iptables. Daher hier mein Spickzettel um mein Notebook temporär als UMTS Router zu nutzen:

sudo su 
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
echo "1" > /proc/sys/net/ipv4/ip_forward

Hintergrund: Am Wochenende hatte sich mein Linux-Router/Server verabschiedet und natürlich hatte ich kein aktuelles ISO Image zur Hand. Die Netzwerkinstallation war aber dann dank des Notebook-Routers kein Problem.

Categories
Linux

Thinkpad T410i: Ubuntu Helligkeit/Brightness

Die Helligkeitseinstellung unter Ubuntu funktioniert mit meinem Thinkpad T410i nicht. Zwar wird (wie hier rechts zu sehen) der Balken angezeigt, aber die Helligkeit ändert sich nicht. Scheint an den proprietären Nvidia Treibern zu liegen.

Abhilfe schafft ein Eintrag in der “Device” Sektion in der /etc/X11/xorg.conf:

Option "RegistryDwords" "EnableBrightnessControl=1"

Quelle

Categories
Linux VDR

VDR Aufnahmen nach TS wandeln

Hurra, ich habe einen neuen SAT-Reviever. Der Name: VU+ DUO. Die Features: HD fähig, Twin Reciever, Kartenleser, Netzwerk, optionale Festplatte, Linux.

Schon etliche Jahre habe ich für meinen VDR auf eine HD-Fähige SAT-Decoderkarte gewartet (“FullFeatured”). Nachdem diese schon X-Mal angekündigt wurde und jedes mal verschoben wurde, wollte ich nicht mehr warten. Schade zwar um den VDR, aber ich muss sagen, die neue Box steht dem VDR in nichts nach. Der alte VDR läuft jetzt u.a. als NFS-Server (für die Box).

Was tun mit den alten Aufnahmen? Die VU+ Box kann keine .vdr Dateien direkt wiedergeben. Aber man kann diese recht problemlos in .ts (Transport-Stream) umwandeln. Man benötigt dazu lediglich das Programm projectx (auch in diversen Repositories verfügbar).

Hier das Script mit dem ich alle Aufnahmen in einer Nacht nach .ts gewandelt habe:

#!/bin/bash
for i in `find /data/video/capture -type d -name "*.rec"`; do
echo "Processing $i..."
cd $i
projectx -tots 0*.vdr
NAME1=`cd ..; basename $PWD`
NAME2=`basename $PWD`
mv *.ts ${NAME1}_${NAME2}.ts
done

Der Pfad zu den Videos muss natürlich individuell angepasst werden. Die einzelnen Aufnahmen werden in jeweils in eine .ts Datei geschrieben. Das Dateisystem muss also u.U. mehr als 2GB pro Datei zulassen. Desweiteren wird versucht der .ts-Datei den Namen der vdr-Aufnahme zu verpassen. Nutzung auf eigene Gefahr!

Categories
Linux

NetworkManager: PPTP und die Routen

Ubuntus NetworkManger bzw. dessen Plugin für die PPTP-Verbindungen verwende ich um zu Windows-Servern ein VPN aufzubauen.

Dabei soll aber nur der Traffic zum Zielnetz durch den Tunnel. Es gibt auch ein Häkchen dafür (“Diese Verbindung nur für Ressourcen dieses Netzwerks verwenden”). Jedoch wird dann nur eine Route auf das Gateway selbst und nicht auf das gesamte propagierte Netz gesetzt. Da hilft es nur, die richtig Route in den Einstellungen selbst zu setzen. Das Feld “Gateway” kann man dabei leer lassen (dieses ändert sich ja u.U. dynamisch).

Categories
Linux

NFS und symbolische Links (symlinks)

Ein NFS-Client interpretiert auf dem NFS-Server erstellte symbolische Links wie lokale Links: Er wendet sie auf das lokale Dateisystem an. Möchte man auf dem Server z.B. per Symlink bestimmte Verzeichnisse über eine einzige Freigabe exportierten, funktioniert diese Methode also u.U. nicht.

Ein Workaround ist es, die Verzeichnisse auf dem Server per “mount –bind /quelle /ziel” zu “verlinken” bzw. zu mounten. Damit diese Mounts permanent sind, müssen sie in die /etc/fstab eingetragen werden:

/mnt/capture /data/video/capture bind bind 0 0

Allerdings exportiert der NFS-Server (Ubuntu/Debian Paket nfs-kernel-server) nicht die gemounteten Verzeichnisse von sich aus – man muss diese noch zusätzlich in der Datei /etc/exports angeben. Diesmal mit der Option “nohide” (detaillierte Erklärung hier):

/data/video/ 192.168.23.10(rw,async,no_subtree_check,no_root_squash)
/data/video/capture 192.168.23.10(rw,async,no_subtree_check,no_root_squash,nohide)
/data/video/movies 192.168.23.10(rw,async,no_subtree_check,no_root_squash,nohide)

Insgesamt eine etwas umständliche Lösung. Leider ist mit nichts besseres eingefallen…

Categories
Linux Tools

dd over ssh

Libvirt unterstützt leider noch nicht das Migrieren von VM-Images auf andere Speicherformen – z.B. von NAS auf eine lokale Partition. Dieses muss man dann halt selber machen ;).

Folgendes Kommando holt sich vom entfernten Rechner den Inhalt des dort gemounteten iSCSI Targets und packt ihn in ein lokales Volume (in diesem Fall LVM):

ssh root@cloudnode \
"dd if=/dev/disk/by-path/ip-10.10.199.4:3260-iscsi-cloud1-11-lun-0" \
| buffer -S 10m -s 64k | dd of=/dev/vmdata/vm02

Das Tool “buffer” hat noch den Nebeneffekt, dass es Statistiken zum laufenden Transport ausgibt. Ein ähnliches Tool in dem Zusammenhang ist Pipe-Viewer (pv), welches ich auch immer schon mal erwähnen wollte.

Categories
Linux

Linux: Updatefälligkeit checken

Zwei kleine Scripts um unter Ubuntu/Debian oder Centos/RHEL zu checken ob Updates fällig sind. Die Scripts geben jeweils nur die Anzahl der fälligen Updates zurück – eignen sich also prima dazu mittels SNMP die Aktualität der Systeme abzufragen. Ein Beispiel für OpenNMS befindet sich hier (von dort stammt auch das erste Script, das zweite ist IMO eine bessere Variante des dort dargestellten).

Centos/RHEL

#!/bin/bash
yum check-update 2>/dev/null | grep -v Load | grep -v \* | grep -v '^$' \ | wc -l

Ubuntu/Debian

#!/bin/bash
/usr/bin/apt-get update > /dev/null 2>&1
/usr/bin/apt-get -qq -s dist-upgrade --allow-unauthenticated | grep ^Inst | wc -l