Kategorien
Linux Tools

inotifysync: Clusternodes synchronisieren

Möchte man die Daten von Cluster-Nodes auf einem gemeinsamen Stand halten gibt es viele Möglichkeiten. Handelt es sich um eine Read-Only Anwendung werden die zugehörigen Dateien meist über einen Master gepflegt und von dort verteilt. Dafür kann man z.B. rsync nehmen – periodisch ausgeführt synchronisiert es zuverlässig die Nodes mit dem Master. Das Problem mit rsync: Die Synchronisation findet nur periodisch statt und nicht live. Außerdem ist bei größeren Datenmengen die Last während der Synchronisation recht hoch.

Warum also nicht nur das synchronisieren was auch synchronisiert werden muss? Genau dafür gibt die inotify-Schnittstelle am Linux-Kernel. Mit entsprechenden Tools überwacht es ganze Dateibäume auf Änderungen und führt bei Bedarf Aktionen aus.

Also habe ich mir ein Script gebastelt welches 1. ein bestimmtes Verzeichnis überwacht und 2. nur die geänderten Dateien/Verzeichnisse unmittelbar mittels ssh verteilt. Voraussetzungen: ssh, scp und inotifywait (enthalten bei den meisten Distributionen im Paket „inotify-tools“). SSH sollte über public keys authentifizieren. Im Kopf von inotifysync.sh müssen die Ziel-Nodes eingetragen werden (diese ändern sich wohl nicht so häufig). Alternativ kann auch eine Datei mit den Ziel-Nodes verwendet werden.

Download: inotifysync.sh

Folgendes Beispiel überwacht das Verzeichnis /home/cluster/htdocs auf Änderungen und synchronisiert diese in das Verzeichnis /var/www/cluster/htdocs auf dem jeweiligen Node:

./inotifysync.sh /home/cluster/htdocs /var/www/cluster/htdocs \
>> /home/cluster/log &

Die Logausgaben werden in die Datei /home/cluster/log geschrieben und das ganze mittels „&“ in den Hintergrund geschickt.

Hinweis: Etwas bash Erfahrung sollte man beim Einsatz dieses Scripts schon haben. Einsatz erfolgt natürlich auf eigene Gefahr ;)

Kategorien
Linux Tools

Multitail

Hatte ich früher oft im Einsatz – ist aber irgendwie in Vergessenheit geraten: Multitail. Es bietet nicht nur farbige Syslogausgabe sondern auch viele nette Features: mehrere Fenster, Suche, Markierungen, Alerts – um nur die wichtigsten zu nennen. Bei Debian ist es im Paketmanager, für Redhat/Centos gibt es Pakete bei Dag Wieers.

Zugegeben: Für die schnelle Analyse zwischendurch („tail -f“) ist mir die Bedienung etwas zu gewöhnungsbedürftig. Für bestimmte Logausgaben (welche z.B. dauerhaft in einem Screen laufen) ist es genial.

Kategorien
Programmierung Tools

Browser Clipboard

In modernen Browsern ist mittlerweile der Zugriff auf die Zwischenablage nicht mehr erlaubt (aus gutem Grund). Möchte man aber den Benutzern seiner Webapplikation zumindest das schreiben in die Zwischenablage ermöglichen, gibt es einen Workaround: Der Umweg führt über das Adobe Flash Plugin…

Der Link zum Script: Zeroclipboard. Nicht das ich das jetzt unbedingt bräuchte – aber man weiß ja nie.

Kategorien
Allgemein Tools

Astaro Free for Business

Interessanter Schachzug: Astaro bietet ab sofort auch für das kommerzielle Umfeld eine kostenlose Software-Editon seiner Firewall an: die Essential Firewall Edition.

Die wichtigsten Funktionen sind an Board. Natürlich fehlen ihr aber Premium-Features wie HTTP-Filter, Mail-Filter und Anti-Virus etc. Auch sollte man für den professionellen Einsatz den Vorteil der Astaro-Hardware-Applicances nicht unterschätzen. Interessierte können sich im übrigen gerne hier melden ;).

Quelle

Kategorien
Tools

Weave 1.0 Beta

Soeben erinnert mich Firefox daran, dass sich das Weave-Addon der Version 1.0 annähert: 1.0 Beta ist jetzt verfügbar.

Das Update war soweit problemlos. Wenn man wie ich einen eigenen Server verwendet, sollte man einen Apache-Alias für die 1.0 Version anlegen:

Alias /1.0 /var/www/vhosts/example.com/httpdocs/weaveserver/server/0.5/index.php

Das Addon ist wirklich genial; wie oft habe ich mich geärgert, dass ein bestimmter Bookmark nur im Büro verfügbar und ein bestimmtes Passwort nur in der Browsersession auf dem Notebook gespeichert ist.

Mittlerweile gehe ich auch ganz anders mit Bookmarks bzw. ganzen Sessions um: Habe ich früher eine Session vor dem nach Hause gehen mühsam in Bookmarks gespeichert, schließe ich jetzt einfach den Browser und arbeite mit den gleichen geöffneten Tabs am Notebook weiter… Und noch etwas kann man nicht oft genug erwähnen: Die Bookmarks/History etc. gehören nur mir.

Kategorien
Linux Tools

Duplicity: Verschlüsseltes Remote-Backup

Derzeit bin ich auf der Suche nach einem geeignetem Weg um meinen Homeserver ins Rechenzentrum zu sichern. Zunächst ist mir natürlich rsync over ssh eingefallen, aber ich hätte die Daten gerne auf der Remote-Seite verschlüsselt abgelegt… Mit TrueCrypt lokal einen Backup-Container anlegen und dann per rsync sichern? Zu unflexibel. Auf der Remote-Seite einen TrueCrypt Container anlegen? Toll, mindestens jeder root-user kommt ran ;)

Was sich als Ideal herausstellt ist das Tool „duplicity„. Mir ist es irgendwann schon mal aufgefallen da es bei der Synchronisation mit Amazon S3 auch auf librsync setzt. Das es auch verschlüsselt war mir irgendwie entfallen.

Um nur ein paar Features zu nennen: Verschlüsselung mittels gnuPG, Vollsicherung, Incrementelle Sicherung. Dabei setzt es wie gesagt auch die Trafficschonende rsync library ein.

Der Clou sind aber auch die unterstützten Backends/Transportwege. Neben ssh und ftp tauchen auch u.A.  AmazonS3 und sogar IMAP in der Liste auf…

Das werde ich auf jeden Fall testen!

Kategorien
Allgemein Tools

Cookies manipulieren

Bisher habe ich immer livehttpheaders als Firefox-Addon zur Cookieinspektion benutzt.

Gerade finde ich eine nette Erweiterung für den (sowieso schon absolut genialen, tollen) Firebug: Firecookie.

firecookie

Kategorien
Linux Storage Tools

HDD spindown check

Nachdem ich meine Platten jetzt schlafenlegen kann, würde ich auch gerne wissen wann und ob dies erfolgt…

# Usage

Output state:
./check_hdd_spindown.sh /dev/sda /dev/sdb /dev/sdc

Log state into file:
./check_hdd_spindown.sh /dev/sda /dev/sdb /dev/sdc >> /var/log/spindown.log &
#!/bin/bash

while [ 1 ]
do
        i=0
        for DRIVE in $*
        do
                DATE=`date +"%Y-%m-%d %H:%M:%S"`
                RESULT_OLD=${RESULT[i]}
                RESULT[$i]=`hdparm -C $DRIVE | grep state`

                if [ "$RESULT_OLD" != "${RESULT[i]}" ]
                        then echo $DATE $DRIVE ${RESULT[i]}
                fi

                i=$i+1
        done

        sleep 5
done
Kategorien
Linux Tools

hwinfo: Infos über die Hardware

Hardware ist nicht so ganz mein Fall. Heute wollte ich mal herausfinden an welchem Controller eigentlich mein DVD-ROM läuft bzw. ob es an einem SATA-Controller hängt (ggf. dazu später mehr).

Dabei kam mir das Tool hwinfo zur Hilfe. Wie so oft: Schon oft gelesen/gehört aber noch nie wirklich verwendet. Meine Methoden zum auslesen von Hardwareinformationen beschränkten sich bisher auf „lspci“ und das ausgeben diverser /proc Einträge. hwinfo ist besser…

Bei der Suche nach meinem Controller half mir folgendes weiter:

~# hwinfo --cdrom
22: SCSI 500.0: 10602 CD-ROM (DVD)                              
  [Created at block.238]
...
  Hardware Class: cdrom
  Model: "Optiarc DVD RW AD-7170S"
  Vendor: "Optiarc"
  Features: DVD
  Drive status: no medium
  Attached to: #5 (SATA controller) <-- das wollte ich wissen
  Drive Speed: 48
Kategorien
Tools

iPhone: Beliebige Messages Pushen

Durch Zufall bin ich über das Netways-Blog auf die Prowl-App gestossen.

Ziemlich genial das System. Es erlaubt beliebige Nachrichten von beliebigen Quellen (z.B. Perl-Script) an ein oder mehrere Empfänger zu senden. Im Falle der iPhone-App über Apples Push-Mechanismus. Die App kostet €2,39 – die Push-Notifications sind kostenloser Bestandteil von Apples iPhone API. Folgekosten fallen also nicht an. Ich würde fast sagen: Goodbye SMS.

Was man damit alles machen könnte…

  • Nagios (bzw. OpenNMS) Notifications
  • Instant-Messaging Gateway
  • Mail Gateway (braucht man dank iPhone  eigentlich nicht)

kleine Negativpunkte: „nur“ 1000 Benachrichtigungen pro Stunde; Verfügbarkeit ist nicht garantiert (ist bei SMS nicht anders).

Ein erster Test war überaus erfolgreich: die Notification kam nach Absenden innerhalb von 4 Sekunden auf dem iPhone (im Standby) an (schneller als SMS).