Archive

Archive for the ‘Work’ Category

up2date_client.up2dateErrors.SSLCertificateVerifyFailedError: The certificate is expired. Please ensure you have the correct certificate and your system time is correct.

March 7th, 2011 No comments

einfach das Zertifikat neu laden:

wget -O /usr/share/rhn/RHNS-CA-CERT https://rhn.redhat.com/help/RHNS-CA-CERT

Categories: Work Tags:

CentOS init script for fetchmail

November 1st, 2010 No comments

With CentOS 5.5 there is a package named fetchmail, which does not have any init script to run fetchmail in daemon mode. I’ve build up and RPM which creates
the init script and the needed /var/log and /var/run directories used to store pidfile/lockfile and logfiles.

Use and grab it freely here

Categories: Work Tags:

python: static methods and the class decorator

May 2nd, 2010 No comments

When one uses a class decorator python wraps the class definition like this:

class RegisterExposedMethods (object):
    def __init__(self, decoratedClass, registry):
        self._decoratedClass = decoratedClass

    def __call__(self,*__args,**__kw):
        return self._decoratedClass(*__args,**__kw)

@RegisterExposedMethods
class MyClass (object):
    def __init__(self):
        object.__init__(self)

    @staticfunction
    def stat (blah):
        print "blah: %s" % blah

A = RegisterExposedMethods (MyClass)

If you write the class decorator like I did, this has 2 major problems in it:

1.) static function stat will not be accessible
2.) in stack traces the class MyClass is named like the decorator function RegisterExposedMethods

You can see both problems in this stack trace:

<function coolFunction at 0x018C9630>
Traceback (most recent call last):
File "class_decorator.py", line 37, in <module>
MyClass.stat()
AttributeError: 'RegisterExposedMethods' object has no attribute 'stat'

To solve the two issues I’ve added the following to my decorator:

class RegisterExposedMethods (object):
    def __init__(self, decoratedClass):
        self._decoratedClass = decoratedClass
        # cloak us as the original class (problem 2.)
        self.__class__.__name__ = decoratedClass.__name__

    def __call__(self,*__args,**__kw):
        print "RegisterExposedMethods.call"
        return self._decoratedClass(*__args,**__kw)

    # define a getattr function to get the static function from the decorated class
    def __getattr__(self, name):
        return getattr(self._decoratedClass, name)

The problem with 1.) is that the class definition is wrapped. With that in place the static method is searched firstly on the decorator class
and not on the decorated class.

Categories: python Tags:

Disable Patrol Read mit LSI MegaCLI

March 24th, 2009 No comments

In der aktuellen Firmware des DELL Perc ist das sogenannte “Patrol Read” im Modus “Auto” immer dann aktiv wenn es dem Gefühl des Controllers nach wenig zu tun gibt. Zum kontrollieren des Features gibt es folgende MegaCli Option:

MegaCli -AdpPR -Dsbl|EnblAuto|EnblMan|Start|Stop|Info|{SetDelay Val}

Zum deaktivieren nutzt man also:
MegaCli -AdpPR -Dsbl -aALL

Für Statusinformationen
megacli -AdpPR -Info -aALL

Categories: Work Tags:

Using iTerm as the MacOSX Terminal

December 2nd, 2008 No comments

In einer Systemumgebung welche auf Unix basiert, sollte man annehmen, dass das Arbeiten mit seines gleichen auf Server Systemen einfacher und schneller von der Hand geht als unter Windows.

Falsch gedacht Рdenn das Terminal von MacOSx beherrscht die Funktionen wodurch Windows Nutzer mit PuTTY sehr flink und komfortabel arbeiten k̦nnen nicht ansatzweise.

Hier ein kleiner Überblick was ich man vermissen könnte:

  • mark&copy gibt es nicht
  • Doppelklick auf eine Zeichenkette markiert zwar das Wort – jedoch lassen sich die Zeichen welche ein Wort ausmacht nicht definieren
  • ALT+<char> wird nicht an das System durchgereicht

Sicher – einige dieser Dinge kann man durch ein paar Einstellungen etwas entschärfen, jedoch wird man immer wieder zu einem bestimmten Punkt kommen an dem man sich PuTTY zurückwünscht :-).

Aus diesem Grund nutze ich seit einer Weile iTerm, welches die oben angesprochenen Dinge beherrscht und sich auch so anpassen lässt, dass man komfortabel arbeiten kann. Die Performance von iTerm ist ebenfalls super, da es eine Native Cocoa application ist.

Nach dem Installieren sollten man die folgenden Anpassungen machen, damit iTerm die oben gesteckten Kriterien erfüllen kann:

Bookmarks

Die Bookmarks kapseln die Profiles und weisen diese dem Terminal sowie dem Keyboard Layout zu. Meine Einstellung ist Keyboard: xterm Display: classic iTerm

Über die Bookmarks wird es möglich auf verschiedene Besonderheiten in den KeyMappings zu reagieren, welche einige Systeme mit sich bringen

Profiles

Innerhalb der Profiles können nun Details angepasst werden. Folgende Eintellungen habe ich gemacht:

Keyboard Profiles (xterm)

  1. “Option Key as” steht bei mir auf +ESC. Dadurch werden die ALT+<char> Mappings auch sauber an Tools wie z.Bsp. yast weitergegeben
  2. Durch den Option Key +ESC müssen nun Tasten neu gemapped werden – dazu zählen Page UP/DOWN, das @ und der Backslash. Hier die nötigen Einstellungen für die Mappings:
  • Page UP: (Key) page up –> (send escape sequence) [5~
  • Page DOWN: (Key) page down –> (send escape sequence) [6~
  • @: (Key) HexCode 0x6c –> (send text) @
  • Backslash: (Key) HexCode 0x3c –> (send text) \

Display Profiles (classic iTerm)

  1. Transparency: 5% (sehr hilfreich, wenn man Texte von darunterliegenden Fenstern abtippen möchte :-))
  2. Font: Monaco 11 (normal)
  3. Col: 200   Row: 55

Preferences

Bei den Preferences sind folgende Optionen wichtig:

  • (Mouse): Characters considered part of word: ‘/_-.’
  • (Mouse): Middle Mouse Button paste from clipboard

Fehler bei der Registrierung von SLES 10 SP2

October 29th, 2008 No comments

Bei der Registrierung von SuSE Linux Enterprise Server Systemen (10 SP2) hatte ich vor Kurzem den folgenden Fehler:

Failed to download XML metadata: Download failed: (https://nu.novell.com/repo/repoindex.xml) Invalid certificate received form se rver.

Der Fehler bezieht sich scheinbar auf den ZMD welcher keine ungültigen zertifikate zulässt. Das Verhalten kann folgendermaßen geändert werden:
vi /etc/zmd/zmd.conf
# change: "require-verified-certs=True" to "require-verified-certs=False"
killall -HUP zmd

Nagios Check Plugin für HP Smart Array Controller

June 8th, 2008 No comments

Der Smart Array Controller von HP lässt sich hervorragend über die Agents bzw. deren SNMP bindings überwachen. Um das Ganze logisch zusammenzufassen und nicht X check_snmp Services anlegen zu müssen, habe ich dazu ein check plugin geschrieben.

Das Plugin kann wie folgt genutzt werden:

/usr/bin/php check_cpq_sac.php &lt;[battery|board|performance|accelerator]&gt;

– battery: Status der BBWC (Battery Backed Write Cache) Batterie
– board: Status des Controllers an sich
– performance: CPU Usage, Command Latency, Command Count …
– accelerator: Status des BBWC Boards (steckt nochmal extra auf dem Controller)

Ein Check Plugin könnte demnach wie folgt angelegt werden:

define command{
command_name check_cpq_sac-battery
command_line $USER1$/check_cpq_sac.php $HOSTADDRESS$ battery
}

Das Script steht hiermit unter der LGPL und kann demnach frei weiterverwendet werden.

– Download check_cpq_sac-0.5.3.tar.gz –

Zeitprobleme bei VmWare

May 25th, 2008 No comments

Linux unter VmWare hat des Öfteren Probleme mit der asynchroner Zeit. Es gibt hier 2 Verhalten

* zu langsam
* zu schnell

Der Grund dafür liegt in unterschiedlichen Interrupt Timer zwischen Gast und Wirt. Da der Linux Kernel durch die Interrupts die Zeit “generiert”, werden durch schnellere Interrupt Timer des Wirtsystems diskrepanzen verursacht.

Dabei gibt es unterschiedliche Einstellungen für jedes System:

Windows: 1000 HZ
Linux 2.4: 100 HZ
Linux 2.6: 100 HZ / 250 HZ / 1000 HZ

Das Ganze wird weiterhin durch SMP “verschärft”, da hier normale Interrupts als auch APIC Interrupts erfolgen. Daher gibt es Mal soviel Timer Interrupts wie bei normalen Systemen:
bei 2 Cores und 1000 HZ 3000 clock interrupts pro Sekunde.

Workaround: Zeit zu schnell
Der Grund für die zu schnelle Uhr ist der “overcorrection for lost ticks” Bug des Kernels. Dieser ist in 2.6.18 fixed. Daher:
* Upgrade auf kernel 2.6.18
* Anleitung auf kb.vmware.de “Preventing the Clock from Running Too Quickly”

Workaround: Zeit zu langsam
Der Grund für die zu schnelle Uhr ist ein zu schneller interrupt Timer auf dem Wirt und ein zu langsamer auf dem Guest. Daher:
* Interrupt Timer angleichen
* Kernel auf Guest mit “nosmp noapic nolapic” starten ( gefährlich )
* Kernel mit clock=pit starten

Weiteres Material:

http://kb.vmware.com/selfservice/microsites/search.do?cmd=displayKC&externalId=1420
http://blog.scottlowe.org/2005/12/23/centos-ntpd-problem-mostly-resolved/
http://kbase.redhat.com/faq/FAQ_43_9259.shtm

Excel multihead

April 21st, 2008 No comments

Excel und multihead support sind Dinge die nicht out of the box funktionieren. Excel versucht alle Dokumente innerhalb eines Fensters aufzumachen um Felder auch unterhalb von Dokumenten übernehmen zu können. Wer darauf verzichten kann, hat die Möglichkeit für jedes Dokument eine einzelne Excel Instanz aufzumachen. Wie das für jedes Dokument mit Endung .xls funktioniert wird hier beschrieben:

http://www.drewery.net/blog/2006/08/29/utilising-dual-monitors-with-microsoft-excel-2003/

Categories: Work Tags: , ,

Asterisk ClickDial Application Trac online

January 28th, 2008 No comments

Das AsteriskClickDial Projekt hat nun eine Phase erreicht, welche es mir ermöglicht die

ersten Resultate online zu stellen. Dazu soll die Website http://www.asteriskclickdial.de

eine entsprechende Plattform bieten. Aktuell bereits implementierte Features sind:

  • SWT Frontend
  • Asterisk Event Listener mit asterisk-java
  • CallWindow (kleine Fenster am Bildschirmrand) welche Asterisk Events anzeigen und den jeweiligen Status farblich darstellen
  • DialWindow, welche den direkten DialOut ermöglicht
  • SettingsWindow
  • Tray Icon

Weitere geplante Funktionen sind:

  • Plugin Anbindung
  • DialWindow dial String cleanup
  • Dial per Shortcut (wähle “Markierung + F12”)
  • Datasource anbindung für Vorschlaggenerierung im DialWindow

Im Laufe der Zeit wird es weitere Releases geben welche den Funktionsradius ausweiten. Entsprechende

Informationen dazu gibts in diesem Blog und auf http://www.asteriskclickdial.de