Categories
Plesk

Plesk 10 Eigenarten

Plesk 10 ist jetzt schon einige Monate draussen. Damals konnte ich es kaum erwarten, da es die erste Plesk Version ist, welche die Ubuntu Longterm 10.04 unterstützt. Man sollte wissen, dass sich mit Plesk 10 vieles ändert. In jedem Fall ist Eingewöhnung für Admins und Kunden angesagt.

Was anders ist

  • Es gibt jetzt ein Plesk-Panel für den Server-Admin, wo er – das ist neu – Subscribtions anlegt. Man könnte sagen, eine Domain entspricht einer Subscription. Aber: Eine Subscription kann auch mehrere Domains enthalten. Das Panel ist mehr oder weniger im gewohnten Layout.
  • Ein weiteres (neues) Panel ist das Control-Panel für den User bzw. Subscriptionsinhaber. Dort werden jetzt Mailkonten, Hostingeinstellungen etc. verwaltet. Auch der Serveradmin muss damit arbeiten.
  • Neu im Control-Panel bei den Hostingeinstellungen ist, dass man den Mountpoint des httpdocs Verzeichnisses angeben kann. Bei Subscribtions mit mehreren Domains kann das jeweilige Dokumentenverzeichnis so beliebig gewählt werden – z.B. /domain1, /domain2 unterhalb der Hauptdomain. Merkwürdig dabei ist, dass trotzdem unter /vhosts ein Verzeichnis für die Domain angelegt wird.  Dieses scheint nur für die Meta Daten da zu sein – es enthält z.B. die Statistiken, Logs und das conf-Verzeichnis – nur eben kein httpdocs. Ich freue mich schon auf das Support-Chaos. Ach ja, Subdomains gibt es auch noch wie gehabt.
  • Das neue Control-Panel mag einfacher sein, ist aber jedenfalls für Umsteiger völlig neu.
  • Apache-Konfiguration: Es soll möglich sein, mittels Templates (global)  z.B. die Apache-Konfiguration zu beeinflussen – was früher nicht möglich war. Es gibt auch im /conf Verzeichnis der jeweiligen Domain keine httpd.include mehr, sondern mehrere generierte Dateien mit einem Timestamp im Dateinamen. Man erkennt am Datum welche Datei wohl vom Webserver eingebunden wird. (Ich habe den Eindruck, dass hier alte Configdateien nicht gelöscht werden…). Ich gucke da manchmal rein, um zu sehen was Plesk mit der Apache-Konfig anstellt – um dies dann mit der vhosts.conf zu beeinflussen.  Zum Glück kann die gute alte vhost.conf nach wie vor verwendet werden.

Einige mir bekannte Bugs mit dem Migration-Manager:

  • Bei Postfächern werden keine Unterordner migriert
  • Im /httpdocs Verzeichnis werden keine Dateien mit “.” am Anfang migriert (z.B. “.htaccess”)

Ich warte erst mal mit Migrationen und Updates bestehender Systeme auf das erwartete Update Plesk 10.1 .

Categories
Networking

Firefox Verbindungsprobleme

Heute wollte ich mich mit dem Firefox (Ubuntu) zu docs.jquery.com Verbinden. Ohne Erfolg. Ein endloser Verbindungsversuch (“warten auf…”). Seite down? Wahrscheinlich. Einige Zeit später nochmal probiert: Gleiches Ergebnis. Hmm. Windows gebootet. Internet-Explorer lädt die Seite problemlos. Firefox unter Windows nicht. Aha. Kurz überlegt und zunächst die MTU-Size im Verdacht (solche Phänomene kommen oft daher). Router überprüft: Alles OK. Also muss es wirklich irgendetwas am Firefox sein.

Die langwierige Fehlersuche erspare ich mir jetzt aufzuschreiben. Ergebnis: Es gab einen ungültigen Eintrag in den Einstellungen für die bevorzugten Sprachen von Webseiten (Einstellungen->Sprachen). In der prefs.js im Profilverzeichnis stand folgender Eintrag:

user_pref("intl.accept_languages", "chrome://global/locale/intl.properties");

Keine Ahnung wo das her kommt. Vermutlich von einer alten Firefox-Version oder einem Firefox von einem anderen Betriebssystem. Da ich Firefox Sync nutze schleppe ich immer alle Einstellungen von einem Rechner zum anderen mit.

Der richtige oder mittlerweile richtige Eintrag sieht so aus:

user_pref("intl.accept_languages", "de-de,en");

Damit lädt Firefox dann auch ohne Probleme die Seite docs.jquery.com.

Vermutlich ist eine weitere Ursache für mein Problem noch ein Bug in der Webanwendung oder im Webserver von docs.jquery.com. Die Serverapplikation bekommt einen ungültigen Languagestring über den HTTP-Header (“accept-language”) übermittelt und stürzt ab – es kommen in der Folge keine Daten am Browser an. Wenn ich es recht überlege, ist es auch noch ein Bug im Firefox: Er lässt scheinbar ungeprüft ungültige Einträge im Accept-language Header zu.

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 
Categories
Linux Networking

Thinkpad UMTS Modul (Qualcomm Gobi 2000 3G)

Mein neues Thinkpad T410i hat ein eingebautes UMTS Modul. Ich bin mir sicher, dass es anfangs unter Ubuntu Maverik ohne Probleme lief. Warum auch immer: nach irgend einem Update wurde es nicht mehr erkannt. Bug ist u.A. hier beschrieben.

Workaround

Firmware Dateien aus dem Windows Treiber kopieren. Diese liegen bei meinem Thinkpad auf der Windows 7 Partition unter “\Program Files (x86)\QUALCOMM\Images\Lenovo\6” und “\Program Files (x86)\QUALCOMM\Images\Lenovo\UMTS” (insgesamt 3 Dateien). Diese Dateien gehören dann in /lib/firmware/gobi (erstellen falls nicht existiert).

Danach lässt sich die Karte nach Eingabe der folgenden Kommandos wieder verwenden:

sudo /lib/udev/gobi_loader -2000 /dev/ttyUSB0 /lib/firmware/gobi
sudo killall modem-manager
Categories
Linux

Linux: USB generell abschalten

Möchte man den USB Support im Kernel generell abschalten geht dies mit dem Kernelparameter “nousb”. Also folgendes z.B. in die grub.conf eintragen:

title CentOS (2.6.18-194.17.4.el5)
        root (hd0,0)
        kernel /vmlinuz-2.6.18-194.17.4.el5 ro root=/dev/md1 nousb
        initrd /initrd-2.6.18-194.17.4.el5.img

Oder bei grub2 so wie hier.

Categories
Linux Plesk

Plesk/qmail: globales procmail Script

Die Möglichkeit Spam-Mails mittels procmail in einen Unterordner zu verschieben hatte ich hier schon mal aufgeschrieben. Leider bietet Qmail meines Wissens nicht die Möglichkeit ein procmail Rezept global anzuwenden sondern prinzipiell nur über die Einbindung in das .qmail-File des jeweiligen Postfachs.

Zumindest die Erstellung/Anpassung des procmail-Rezeptes kann man aber global Abhandeln. Prinzipiell wird das Script einfach nur in der .qmail Datei verlinkt:

| true
| preline /usr/bin/procmail -p /etc/procmail_spam

Soweit eigentlich logisch. Es gibt jedoch einen kleinen Haken: Das procmail Script benötigt das aktuelle Verzeichnis bzw. das aktuelle Postfach um die Mails richtig zu verschieben. Normalerweise steht das aktuelle Verzeichnis ja in der Umgebungsvariable $PWD – aber procmail löscht einige dieser Variablen aus Sicherheitsgründen. Auf neueren Plesk-Systemen bekommt man das Verzeichnis nur über die DELIVERED_TO Umgebungsvariable – welche nur gesetzt wird wenn man den besagten “Sicherheitsmechanismus” von Procmail ausschaltet (-p) und damit den Zugriff auf alle Umgebungsvariablen erlaubt.

LOGFILE=/var/log/procmail.log
#VERBOSE=YES
MAILDIRMAKE=/usr/bin/maildirmake
 
MAIL_HOME=`if [ -n "$DELIVERED_TO" ]; then echo $DELIVERED_TO | awk -F @ '{print "/var/qmail/mailnames/"$2"/"$1}'; else /bin/pwd; fi`
MAIL_HOME=`if [ -e "$MAIL_HOME" ]; then echo $MAIL_HOME; fi`

# sollte es keine Ordner Junk geben, diesen anlegen
DUMMY=`test -d $MAIL_HOME/Maildir/.Junk || echo "Junk" >> $MAIL_HOME/Maildir/courierimapsubscribed`
DUMMY=`test -d $MAIL_HOME/Maildir/.Junk || $MAILDIRMAKE -f Junk $MAIL_HOME/Maildir/`
 
# Spam-Mails nach 30 Tagen löschen
DUMMY=`find $MAIL_HOME/Maildir/.Junk/cur/ -type f -mtime +30 -exec rm -f {} \\;`
DUMMY=`find $MAIL_HOME/Maildir/.Junk/new/ -type f -mtime +30 -exec rm -f {} \\;`
 
# Spam-Mails in den Ordner Junk verschieben
:0 w
* ^Subject:.\*\*\*\*\*SPAM\*\*\*\*\*
$MAIL_HOME/Maildir/.Junk/
 
# Wichtig: alle weiteren Mails normal zustellen
:0 w
$MAIL_HOME/Maildir/

Um die .qmail Files anzupassen habe ich mir ein Script geschrieben. Sollte jemand einen eleganten Weg kennen ein Procmail-Script auch global in die Qmail Kette einzubinden darf er sich gerne melden ;)

Update: für neuere Plesk-Versionen war leider ein Update des Scripts nötig, da qmail dort anders aufgerufen wird und daher /bin/pwd nicht auf das richtige Homeverzeichnis verweist.