Der Weg zum eigenen URL-Shortener

Es gibt einige Dienste die ich ungern aus der eigenen Kontrolle gebe. Dazu gehört auch das kürzen von URLs. Ich verwende ziemlich häufig an diversen Stellen Short-URLs und es wäre mehr als ärgerlich, wenn eines Tages der bevorzugte Anbieter seinen Laden schließt und alle Links unbrauchbar werden. Die Entscheidung zum Betrieb eines eigenen Shorteners ist mir daher ziemlich leicht gefallen.

1. Kurze URL
Am besten eignet sich für die angestrebte Verwendung eine möglichst kurze Domain mit nur zwei oder drei Stellen. Ich habe mich der Einfachheit halber für eine .de-Domain mit drei Stellen entschieden. Einen guten Überblick über die wenigen noch freien kurzen Domains gibt die Webseite short-domains.de

short-domains.de

Im Bereich „Domain Listen“ bin ich fündig geworden und habe mir dann x9u.de registriert. Klar, die Domains sind nicht der Knaller, aber ohne viel Geld in die Hand zu nehmen dürften knallige kurze Domains kaum zu bekommen sein – jedenfalls nicht bei der .de-Endung.

2. URL-Shortener-Script
Als Script für meinen Shortener habe ich YOURLS gewählt.

Features
– Der Dienst kann öffentlich oder privat betrieben werden
– Zufälliges kürzen oder URL-Keyword möglich
– Bookmarklet
– Click-Tracking
– Ajax-Interface
– API

Systemvoraussetzungen
– Server mit mod_rewrite- Mindestens PHP 4.3
– Mindestens MySQL 4.1
– Empfohlen wird Curl und BCMath

Backend von YOURLS

YOURLS unterstützt URL-Keywords mit bis zu 12 Zeichen. Möglich sind insgesamt 4,738,381,338,321,617,846 URLs.

3. Platzhalterseite für die Short-URL
Bei privatem Betrieb bietet es sich an, einen Platzhalter auf die Domain des Shorteners zu schalten der z.B. die letzten oder beliebtesten Links anzeigt. YOURLS bietet mit seiner API alle Möglichkeiten um sich auszulassen. Beispiel wie man sich die letzten 5 Links zieht:

$username = 'USERNAME';
$password = 'PASSWORD';
$api_url = 'URL DER API';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $api_url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, array(
'action' => 'stats',
'filter' => 'last',
'limit' => '5',
'format' => 'xml',
'username' => $username,
'password' => $password
));
$data = curl_exec($ch);
curl_close($ch);

4. WordPress-Plugin
YOURLS kommt mit einem WordPress-Plugin, dass für neue Postings oder Pages eine Short-URLs erzeugt und direkt einen Tweet an Twitter sendet.

YOURLS WordPress-Plugin

Dazu kann das Plugin Remote auf eine eigene YOURLS-Installation zugreifen oder auch andere Dienste wie tinyurl nutzen (was ich in dem Zusammenhang allerdings für überflüssig halte). So ist es z.B. möglich Short-URLs mehrere Blogs oder Webseiten zentral mit einer Installation zu erzeugen.

Mit dem oben erklärten Setup geht es mirnun wesentlich besser weil ich weiß das meine Short-URLs auch noch in sehr, sehr langer zeit verfügbar sein werden. Ich kann das nur weiterempfehlen. Echter Aufwand entsteht bei der Einrichtung ja nicht.

Festplatten dauerhaft löschen

Wer seine Daten nicht auf ebay mitveräußern möchte oder gerade keine Bohrmaschine zur Hand hat, freut sich bestimmt über das Linux-Tool shred.
shred überschreibt vorgegebene Dateien mit zufälligem Inhalt. Da unter Linux alles eine Datei ist, kann man damit auch Festplatten mehrfach überschreiben.
Die Anweisung dazu wird nach folgendem Muster formuliert:
shred -n 5 -vz /dev/hda

Hierbei würde die erste IDE-Platte mit 5 Durchläufen überschrieben. Wird -n nicht definiert, erfolgen 25 Durchläufe. Die Option v sorgt für ein Feedback und z veranlasst, dass die Festplatte beim letzten Durchlauf mit Nullen überschreiben wird.
Für den Hausgebrauch ist das durchaus ausreichend. Beachtet werden muss bei Verwendung von shred lediglich, ob und welches Journaling im Dateisystem verwendet wird.

Linux: Befehle gleichzeitig auf mehreren Servern

Wer mehrere Server mit gleicher Konfiguration betreibt, muss immer wieder mal sicherstellen, dass die Konfiguration auch identisch bleibt. Ein nettes Tool hierfür ist multixterm. Das Programm gibt es hier, eine interessante Anleitung hier (benötigt werden außerdem expect und tk).

Mit folgendem Befehl werden SSH-Verbindungen zu maschine1 und maschine2 aufgebaut:

multixterm -xc "ssh %n" maschine1 maschine2

Alles was nun im zentralen Fenster eingegeben wird,  schickt multixterm an beide Maschinen.

Linux: Alle Zugriffe sofort unterbinden

Wer kennt als Administrator nicht die Situation, dass man eine Maschine laufen lassen muss, ohne das sich Benutzer anmelden können!? Um das zu erreichen, gibt es mehrere Methoden. Die schnellste dürfte sein, als Root folgenden Befehl auszuführen:
touch /etc/nologin
Die aktive Session bleibt erhalten und außer dem Root kann sich niemand mehr am System anmelden. Zusätzlich besteht die Möglichkeit, in einer Datei nologin.txt Hinweise für die abgewiesenen Benutzer zu hinterlegen.

Voraussetzungen für eigene Facebook-Applikationen

Für die ersten Experimente mit einer eigenen Facebook-Applikation, reicht bereits einfacher Webspace mit Unterstützung von (mindestens) PHP4.
Installation der Facebook-API:

wget http://developers.facebook.com/clientlibs/facebook-platform.tar.gz
tar -xvzf facebook-platform.tar.gz

Die SimpleXML-Bibliothek lässt sich bei Bedarf wie folgt installieren:

wget http://downloads.sourceforge.net/ister4framework/simplexml44-0_4_4.tar.gz
tar -xvzf simplexml44-0_4_4.tar.gz

Die Hürden für den Einstieg sind also mehr als niedrig. Mittelfristig werde ich an dieser Stelle die Entwicklung einer eigenen Applikation in mehreren Teilen dokumentieren.