Schaltbare Steckerleisten (APC PDUs) mit PHP und SNMP steuern

1482463962 (23. December 2016)

Vor einiger Zeit hatte ich die Möglichkeit, einige PDUs des Fabrikats APC AP7920 zu einem günstigen Preis zu erstehen. Diese PDUs “Power Distribution Units” oder in diesem Fall “switchable Power Distribution Units”, also “schaltbare Stromverteiler”, sind über viele unterschiedliche Protokolle ansprechbar und geben die Möglichkeit über diese Protokolle gesteuert zu werden. Im Enterprise-Umfeld kommen diese Geräte zum Einsatz, um z. B. per Fernsteuerung Server oder andere Geräte vom Stromnetz zu trennen.

(more…)



ERROR 1018 (HY000): Can’t read dir of ‘.’ (errno: 24)

1424774674 (24. February 2015)

Solltet ihr diesen Fehler in phpMyAdmin erfahren, liegt es mit hoher Wahrscheinlichkeit an dem gleichen Fehler, der oft mit der Fehlermeldung “Too many open files” quittiert wird. Ich erfuhr diesen Fehler gestern, nachdem ich ein Upgrade von PHP 5.5 auf 5.6 durchführte.
Das Problem schien sich noch auf einem weiteren Wege zu zeigen: Und zwar wurde trotz funktionierender Datenbank bei einigen WordPress-Blogs auf dem System das Installationsformular angezeigt – also so, als wäre die Datenbank noch nicht fertig eingerichtet worden. Zum Glück konnte ich den Fehler innerhalb weniger Augenblicke beheben, sodass das Problem nicht weiter auffiel.

Hier möchte ich nun als Hilfestellung beschreiben, was ich getan habe damit wieder alles seinen gewohnten Gang geht.

(more…)



OpenVPN-Client Traffic-Statistiken auslesen und mit PHP ausgeben

1397810621 (18. April 2014)

Fuer mein kleines VPN-Projekt spiele ich aktuell mit allen Moeglichkeiten, Tools und Funktionen umzusetzen. Nachdem ich im VPN einen kleinen Fileserver, ein simples Nachrichtensystem (mit PHP und ohne Datenbank) und einen Ping-Check eingebaut hatte, wollte ich gerne ein bisschen tiefer gehen.
Mir war bekannt, dass es VPN-Anbieter gibt, die die Menge des durch Kunden erzeugten Traffics kennen und irgendwann dicht machen. Und da werden wohl auch welche dabei sein, die OpenVPN verwenden. Im debianforum.de fand ich dann ein Thema[1] bei dem ein langjaehriger Debian-User empfahl einzelne OpenVPN Instanzen zu erstellen um anhand der einzelnen Tunnelschnittstellen (tun0, tun1 usw.) den Traffic messen zu koennen.
Das schien mir allerdings sehr aufwendig, zudem ich ja gerne moechte, dass die Clients sich im gleichen Netz befinden und miteinander kommunizieren koennen.

Mir fiel dann ein, dass OpenVPN ja ein Statuslog anlegt, welches standardmaessig in /etc/openvpn liegt. Dieses Statuslog beinhaltet unter anderem die IP des Clients, die Zeit des Verbindungsaufbaus, die virtuelle IP und auch die eingehenden und ausgehenden Bytes.[2] Daraus kann man doch was machen.
Ich hatte bereits geplant selbst ein Script zu schreiben, welche die in CSV-ähnlichem Format vorliegenden Datensätze in ein PHP-Array umwandelt sodass ich es beliebig ausgeben kann, als ich ein fertiges Script genau für diesen Zweck im Netz fand.[3]

(more…)



Unterüberschrift in WordPress randomisieren

1354871824 (7. December 2012)

Habe kürzlich ein lustiges kleines Gadget für meine Tagline, zu Deutsch auch Unterüberschrift, geschrieben. Die Idee kam ursprünglich vom Omploader, der immer lustige Sätze anzeigt wie “powered by 867 ugly vaginas”. Die Funktionsweise dahinter ist recht einfach – man hat eine Liste von bestimmten Wörtern die an bestimmten Positionen zufällig angezeigt werden. Um die Funktionsweise zu verdeutlichen, nehme ich mal vier Wörter – zwei Adjektive und zwei Substantive:

“fat” und “american”
sowie
“ugly” und “russian”

Position 1 definiert ein Adjektiv und Position 2 ein Substantiv. Nun kann Position 1 zufällig und Position 2 zufällig ausgewählt werden. Als Resultat könnte man erhalten:

fat american
ugly russian
ugly american
fat russian

Erweitert man den Pool an Adjektiven und Substantiven nun, wird die Sache noch viel lustiger und umfangreicher.
Den Code schreibe ich hier im nachfolgenden Artikel. Wo und wie ihr die Phrase in euer WordPress einfügt kann ich nicht pauschalisieren, das hängt von eurem Geschmack und eurem verwendeten Theme ab. Ich erkläre die Sache nur kurz für meinen Bigblue-Fork.

Ersteinmal erstellen wir in unserem Theme-Verzeichnis eine Datei, der wir einen beliebigen Namen (beispielsweise randomtagline.php) geben. In diese Datei schrieben wir folgenden Inhalt (in den Kommentaren der Datei erkläre ich die Funktionsweise der einzelnen Gruppierungen):

(more…)