Persistente Linux Shell Sessions – screen Kurztutorial

Einleitung

Betreut man Linux Server, so kommt man eigentlich kaum an der Arbeit auf der Shell vorbei. Da man zumeist nicht direkt im Serverraum arbeitet, hat mal meist eine Remote-Shell geöffnet. Ist die Arbeit beendet, wird diese wieder geschlossen. Was aber, wenn man die angefangene Arbeit an eeinem anderen Client weiterführen möchte, bei langen Wartezeiten nicht dauerhaft die Session geöffnet lassen möchte oder die Verbindung, z.B. im Zug, öfter mal abbricht? Eine Lösung könnte screen sein, es ermöglicht Sessions zu parken und diese später von überall wieder aufzunehmen.

Pakete

Wir installieren screen aus den Quellen:

Mehr wird nicht benötigt.

Kurzanleitung

Erstellen einer Session:

Es können nun auch weitere neue Sessions erstellt werden:

Diese Sessions erhalten Nummern, zwischen den einzelnen Sessions kann gewechselt werden:

Sessions können auch umbenannt werden:

Möchte man schließlich die Session verlassen:

Die anschließende Wiederaufnahme der Session ist natürlich ebenfalls möglich:

Eine kurze Hilfe kann innerhalb der Sessions ebenfalls aufgerufen werden:

Have fun!

Raspberry Pi in Munin einbinden

Einleitung

Zum Überwachen bzw. zur Darstellung verschiedener Mess- und Zustandsdaten meiner Raspberry Pi nutze ich Munin, da ich dies auch für andere Maschinen bereits seit Jahren einsetze. Die Konfiguration verläuft in zwei Schritten.

Munin-Node

Auf dem Raspberry Pi selbst wird munin-node installiert:

Anschließend muss es noch so konfiguriert werden, das der Munin Server die Daten abfragen darf, hierzu wird in /etc/munin/munin-node.conf die entsprechende Berechtigung gesetzt:

Natürlich sollte hier die korrekte IP hinterlegt werden.

Beim Stöbern habe ich hier ein interessantes Plugin gefunden, die Installation wie folgt:

Danach wird das Plugin in /etc/munin/plugin-conf.d/munin-node aktiviert:

Zu guter Letzt muss munin-node noch einmal neugestartet werden, um die Änderungen zu übernehmen:

Danach folgt Schritt zwei, die Einbindung in den Munin Server.

Munin Server

die Einbindung in den Munin Server erfolgt in /etc/munin/munin.conf:

Auch hier ist natürlich auf die korrekte IP des Raspberry Pi zu achten. Nach einem Neustart von Munin einfach einige Minuten warten…

Raspberry Pi Videostreaming

Einleitung

Nachdem ich kürzlich unerwartet für längere Zeit nicht zu Hause sein konnte, habe ich nach einer Möglichkeit gesucht, unser Haustier „überwachen“ zu können. Da ich ohnehin in letzter Zeit gerne mit dem Raspberry Pi experimentier habe, hat er sich als Basis quasi angetragen. Hinzu kam noch eine ältere USB-Webcam, die normalerweise auf meinem Monitor steht. Als Betriebssytem nutze ich Debian wheezy (Raspbian).

Motion

Motion greift Videosignal ab und kann feststellen, ob sich Bereiche des Bilds geändert haben, somit also Bewegung im Bild feststellen. Installation von Motion:

In /etc/default/motion legen wir fest, dass Motion als Daemon standardmäßig gestartet werden soll:

Die Konfiguration erfolgt in /etc/motion/motion.conf. Hier sind u.a. folgende Anpassungen erforderlich:

Nach einem Neustart sollte unter Port 8081 ein Stream abrufbar sein.

FFmpeg

Hierzu bin ich dieser Anleitung gefolgt.

Ad-block und Data Compression Proxy für UMTS- oder langsame Verbindungen

Vorwort

Im Folgenden beschreibe ich, wie ein Ad-block und Data Compression Proxy aufgesetzt werden kann. Dieser Beitrag ist unserer kleinen Tochter gewidmet, die mich gewissermaßen erst auf diese Idee gebracht hat. Ich liebe dich!

Einleitung

Wer wie ich beruflich häufiger unterwegs ist, übernachtet nicht selten in Hotels, deren Internetzugänge Modem-Verbindungen gleichen oder im ungünstigsten Falle schlicht nicht vorhanden sind. Seitdem es bezahlbare UMTS-Tarife und Smartphones gibt, liegt die Lösung auf der Hand: Tethering – das Smartphone wird mit dem PC verbunden, der dann dessen Internetverbindung nutzt. Allerdings hat diese Sache einen kleinen Haken, da die Datentarife beschränkt sind, oft auf magere 250 oder 500 MB Traffic pro Monat. Um diesem Umstand entgegen zu wirken, möchte ich eine Kombination aus Data Compression Proxy und Ad-Blocker bauen. Zum Einsatz kommen SQUID als Caching Proxy, ziproxy zur Kompression der Daten und privoxy zum Filtern von unerwünschter Werbung.

Hilfreich ist dies natürlich auch bei langsamen Netzwerkverbindungen, so z.B. in mobilen Netzgebieten, die nicht per UMTS abgedeckt sind oder schlichtweg bei dünnen DSL-Leitungen.

Voraussetzung ist, dass man irgendwo Zugriff auf einen Server mit passabler Bandbreite hat, der die Daten bereitstellen kann.

Pakete

Zunächst benötigen wir ein paar Pakete.

Die Konfiguration der einzelnen Komponenten werden im Folgenden beschrieben.

Konfiguration SQUID

Da bei mir bereits ein SQUID läuft und es neben der großartigen Dokumentation zahlreiche gute Tutorials zur Konfiguration gibt, verzichte ich auf detaillierte Erläuterungen und setze eine Grundkonfiguration voraus.  Sofern diese nicht bereits erfolgt ist sei in erster Linie auf die Dokumentation verwiesen, die keine Fragen offen lassen dürfte. Anpassungen für den Betrieb mit privoxy und ziproxy sind weiter unten beschrieben.

Zugriff auf den Proxy

Auch hier möchte ich nicht näher ins Detail gehen. Voraussetzung ist natürlich, dass der Proxy auch erreichbar ist. Viele Wege führen nach Rom. Meine beiden favorisierten Wege sind SSH-Tunnel mit Putty oder gleich eine VPN-Lösung. Falls Bedarf besteht, kann ich hier gern mal einen Beitrag erstellen, dann einfach einen entsprechenden Kommentar hinterlassen.

Privoxy

Privoxy läuft standardmäßig unter Port 8118. SQUID müssen wir nun so anpassen, dass der Proxy alle Anfragen an privoxy weiterleitet, wir passen in /etc/squid/squid.conf folgendes an:

Nach einem Neustart von SQUID kann hier schonmal rudimentär geprüft werden, ob SQUID mit privoxy arbeitet.

Optional kann noch die Action set-image-blocker auf „blank“ gestellt werden, damit werden Werbebilder „ausgeblendet“ (1x1px großes Bild) anstatt sie durch eine 4x4px großes sichtbares Bild zu ersetzen.  Hierzu ist /etc/privoxy/default.action anzupassen. Zu suchen sind die Zeilen:

Sie werden ersetzt durch:

Danach ist privoxy neuzustarten.

 Ziproxy

Im nächsten Schritt wird die Konfiguration so erweitert, dass neben dem Filtern der Werbung nun auch noch eine Komprimierung der Daten durchgeführt wird. Ziproxy kommt ins Spiel. Die Idee ist, dass wir nun SQUID anweisen, zunächst an ziproxy weiterzuleiten. Die Anpassung von vorher ändern wir daher auf Port 8080 ab, die ist der Standard-Port, auf dem ziproxy lauscht. Wir ändern also

um in

und starten SQUID wieder neu (/etc/init.d/squid restart). Ziproxy soll nun seine Anfragen künftig an privoxy weiterleiten. Wir passen folgende Zeilen in /etc/ziproxy/ziproxy.conf an:

Jetzt muss ziproxy neugestartet werden, anschließend kann ein Test beginnen.

Fehleranalyse

Ich empfehle, Schritt für jede Komponente zunächst einzurichten und dann auch einzeln zu testen. Angefangen bei SQUID. Sofern es zu Fehlern kommt, ist dann schon einzugrenzen, wo diese Fehler auftreten. Funktioniert eine Komponente, kann mit der Einbindung der nächsten begonnen werden.

Grundsätzlich sollte in allen Konfigurationsdateien entweder mit localhost oder 127.0.0.1 gearbeitet werden. Je nach DNS-Konfiguration muss localhost nicht zwingen nach 127.0.0.1 auflösen.

Noch eine Anmerkung zu SQUID: Eigentlich ist es klar, gerne vergisst man es aber im Eifer des Gefechts. Wer SQUID als Caching Proxy konfiguriert hat, darf sich nicht wundern, dass die Änderungen scheinbar keinen Effekt haben. Grund könnte hier sein, dass SQUID nicht ohne Werbung und mit komprimierten Bildern ausliefert, weil er direkt aus dem Cache bedient. Dann entweder den Cache neu aufbauen oder beim Aktualisieren <STRG>+<F5> (abhängig vom Browser) ganz neu anfordern.

Raspberry Pi

Noch ein paar Gedanken, da ich in letzter Zeit auch gerne mal mit dem Pi spielen… Vom Grundsatz her läuft solche ein Proxy auch auf dem Raspberry Pi. Einzig die Performance bei der Komprimierung der Bilder könnte ein wenig die User Experience in Mitleidenschaft ziehen. Wer Zeit und Lust hat, kanns ja mal ausprobieren und mir hier sein Feedback geben. Have fun!