Michael`s Blog OSS/Linux, networking and my private life

28Dez/090

File merge am Mac

Vor kurzem hatte ich das Problem zwei Dateien mergen zu müssen, d.h. die Dateien haben den gleichen Ursprung aber beide wurden parallel weiter editiert.

Um diese wieder zusammenzuführen hilft opendiff am Mac, enthalten ist das Tool in XCode.


Um den gewünschten Inhalt der neuen Datei auszuwählen einfach rechts unter bei Actions den gewünschten merge Mechanismus auswählen.

18Dez/093

TimeMachine und iSCSI

Nachdem mein TimeMachine Backup auf einen SMB Share nach einiger Zeit wegen Problemen mit dem Image Probleme gemacht hat habe ich mich dazu entschlossen einen neuen Weg zu suchen. Aktuell wird für das Storage iSCSI auf einen Linux Server verwendet. Benötigt wird hierfür lediglich das iSCSI Target unter Linux (in diesem fall Debian) und ein iSCSI Initiator für den Mac da sowohl in Leopard als auch Snow Leopard iSCSI nicht nativ unterstützt wird.

Die Installation des Targets geht unter Debian mittels:

aptitude install iscsitarget iscsitarget-modules-`uname -r`

Danach folgt die Konfiguration des Targets in /etc/ietd.conf

Target iqn.2009-12.name.streb:storage.timemachine
    Lun 0 Path=/dev/vg_data/lv_timemachine,Type=blockio
    Alias Timemachine

Die Konfigurationsänderung wird durch den Neustart des Target Daemons initiiert: /etc/init.d/iscsitarget restart.

Vorher muss allerdings /etc/default/iscsitarget editiert werden um das Starten des Daemons zu erlauben.

ISCSITARGET_ENABLE=true

Um iSCSI auf dem Mac nutzbar zu machen kann "globalSAN iSCSI" verwendet werden, zu finden ist die Software hier: http://www.studionetworksolutions.com/support/faq.php?pi=11&fi=51.
Nach erfolgreicher Installation kann das Volume eingebunden werden.
Zum setzen der Einstellungen bringt globalSAN ein SystemPref mit in dem unter "Portal" der iSCSI Target Host zu setzten ist.

globalSAN iSCSI Portal

globalSAN iSCSI Portal

Danach werden unter "Targets" die zur Verfügung gestellten Dateisysteme sichtbar.

globalSAN iSCSI Target

globalSAN iSCSI Target

Danach wird TimeMachine wie gewohnt auf das neue Volume gesetzt und los gehts.

veröffentlicht unter: apple, it 3 Kommentare
14Dez/096

OpenNMS Prowl Alerts

Nachdem ich als iPhone Nutzer auch Prowl installiert habe ging es nun darum mein OpenNMS mit Prowl für die Alarmierung zu koppeln.
Da Prowl eine gut beschriebene API bietet und ebenfalls fertige Skripte für diese in verschiedenen Sprachen (Perl,Python,...) zur Verfügung stellt habe ich mich für diese Variante entschieden.
Benutzt habe ich hierfür die Perl Variante, downloadbar ist prowl.pl hier.

Allerdings gab es bei der Parameterübergabe(API Key, Application, usw.) aus OpenNMS an prowl.pl etwas Schwierigkeiten. Lösung des Problems ist ein kleiner Wrapper der von OpenNMS aufgerufen wird und im Hintergrund entsprechend parametrisiert prowl.pl aufruft.

prowl_wrapper.pl

#!/usr/bin/perl -w
 
my $prowl = "/usr/local/bin/prowl.pl";
my $apikey = shift;
my $application = "OpenNMS";
my $priority = 1;
my $event = "Alert";
my $msg = "";
 
foreach (@ARGV) {
        $msg .= $_." ";
}
 
my $cmd = $prowl." -apikey ".$apikey.
" -application=\"".$application."\" -priority=".
$priority." -event=\"".$event."\" -notification=\"".$msg."\"";
 
my $return = qx( $cmd );
print $return;

Wichtig ist hier die jeweiligen Prowl API-Key für den Wrapper richtig anzupassen, hierfür habe ich die PagerEmail Adresse in OpenNMS verwendet um so für jeden Kontakt eine andere angeben zu können.

Anbei finden sich die notwendigen configs für OpenNMS:

notificationCommands.xml

    <command binary="true">
        <name>notifyProwl</name>
        <execute>/usr/local/bin/prowl_wrapper.pl</execute>
        <comment>send Prowl notifications</comment>
        <argument streamed="false">
            <switch>-pemail</switch>
        </argument>
        <argument streamed="false">
            <switch>-subject</switch>
        </argument>
    </command>

10Dez/090

rootdelay beim Linux Boot

Gerade eben hatte ich bei einer nagelneuen Linux Installation ein Problem beim ersten Booten des neuen Systems. Der Fehler war nicht von Anfang an ersichtlich, nach längerem Debugging hat sich der Fehler wie folgt dargestellt:

Beim Übergang vom Initrd zum Kernel und dem Mounten des Filesystems meldete Grub folgenden Fehler:

ALERT! /dev/sda2 does not exist. Dropping to a shell!

Danach begrüßte mich eine BusyBox Shell von der ich leider nicht weiter kam.

Problem war schlicht das beim Laden des SAS-Controller Modules (mptsas) braucht das System viel zu lange um die Platten zu finden und bricht mit einem Timeout ab.

Der Fehler lässt sich durch den Parameter

rootdelay=45

in der Kernel Commandline beheben.

Siehe auch hier bei Launchpad beschrieben.