Problem bei Synchronisierung von Ubuntu und Debian mit Unison

unisonIch verwende zum Synchronisieren von einigen Daten zwischen mehreren Rechnern gerne Unison. Das Tool kann Dateien z.B. per SSH zwischen dem lokalen Rechner und einem entfernten Rechner synchronisieren.

Jetzt habe ich neulich meinen Laptop auf das neue Kubuntu 16.10 aktualisiert, auf dem entfernten Rechner um den es hier geht läuft ein Debian 8. Bisher hatte ich da auch keine Probleme diese beiden mit Unison zu synchronisieren, aber jetzt bekam ich folgenden Fehler:

Unison failed: Uncaught exception Failure(„input_value: bad bigarray kind“)

Nach einiger Recherche scheint es wohl daran zu liegen, dass die beiden Unison-Versionen gegen unterschiedliche Versionen irgendwelcher Libs gebaut wurden.

Eigentlich gibt es dafür sowohl in Ubuntu, als auch Debian das Paket unison-all in dem „alle“ Versionen von Unison enthalten sein sollten, falls man mit einem System synchronisieren möchte, dass nicht die aktuelle Version beinhaltet. Leider ist dieses Paket aktuell etwas nutzlos, da es nur eine Abhängigkeit auf die aktuelle Version von Unison enthält.

Ich konnte das Problem in meinem Fall lösen in dem ich mir das Paket von den Ubuntu Repos heruntergeladen und dann manuell unter Debian installiert habe. Damit funktioniert die Synchronisierung jetzt wieder ohne Probleme 🙂

Ich dachte mir ich halte das mal hier fest, falls noch jemand auf das Problem stoßen sollte. Das ist natürlich keine dauerhafte oder schöne Lösung, aber für den Moment (bis zum nächsten Update) funktioniert es. Falls jemand eine bessere Lösung weiß immer her damit! 🙂

Regex: Wieder mal was neues gelernt

Wenn ich mir so manche regulären Ausdrücke (regular expressions oder kurz RegEx) ansehe, dann verstehe ich teilweise nur Bahnhof. Umso mehr freut es mich, wenn ich wieder etwas mehr von dem Mysterium verstehe 🙂 Ich bin neulich das erste mal bewusst mit den Regex-Konstrukten ‚lookahead‘ und ‚lookbehind‘ in Kontakt gekommen. Damit kann man darauf prüfen, ob vor bzw. hinter dem Gesuchten etwas bestimmtes vorkommt, oder auch nicht. Ich möchte euch diese Konstrukte heute einmal ganz kurz vorstellen. Ich denke am besten sehen wir uns das mal an einem Beispiel an:

Nehmen wir mal den String ‚Ich habe Hunger und habe Durst.‘. Ich möchte hier für das Beispiel auf das erste ‚habe‘ matchen.

Mit lookahead:

/habe(?= Hunger)/g
=> matcht auf ‚habe‘ gefolgt von ‚ Hunger‘
/habe(?! Durst)/g
=> matcht auf ‚habe‘, solange danach nicht ‚ Durst‘ kommt

Mit lookbehind:

/(?<=Ich )habe/g
=> matcht auf ‚habe‘, wenn davor ‚Ich ‚ steht
/(?<!und )habe/g
=> matcht auf ‚habe‘, aber nur, wenn davor kein ‚und ‚ steht

Alle diese Beispiele finden jeweils das erste ‚habe‘ aus dem Beispielsatz. Ich hoffe das war jetzt für irgendjemand hilfreich und auch halbwegs verständlich. Wenn dich das Thema interessiert, dann gibt es hier noch mehr Info dazu.

Kurzmitteilung

Unterhaltsame Webcomics: xkcd

Heute möchte ich mal auf xkcd hinweisen. Dort gibt es regelmäßig, mehrmals wöchentlich, Comics. Diese sind stets einfach gehalten und zu den unterschiedlichsten Themen. Ich habe den RSS-Feed seit einigen Jahren abonniert und freue mich jedes mal aufs Neue, wenn es einen neuen Comic gibt.

Heute gab es z.B. einen tollen Comic zum Thema Datensicherheit. Nicht mit Datenschutz verwechseln 😉

via xkcd.com.

Der Zeichenstil ist immer recht einfach und fast immer komplett in schwarz-weiß gehalten. Manchmal sind die Comics allerdings etwas komplexer wie ihr Zeichenstil. Hier kommt einem dann explain xkcd zu Hilfe 🙂 Dort findet man zu jedem Comic die passende Erklärung.

Let’s encrypt! [UPDATE]

Ich habe spontan beschlossen für meine private ownCloud, Tiny Tiny RSS usw. ein ordentliches Zertifikat via let’s encrypt einzurichten.

In Debian ist inzwischen ein Paket namens letsencrypt enthalten. Zudem installierte ich noch python-letsencrypt-apache welches ein Plugin für letsencrypt für Apache enthält.

Nun noch schnell mit Hilfe der man-page den Befehl zusammengebastelt um ein Zertifikat zu erstellen, natürlich direkt für mehrere Domains welche dann im Zertifikat als SAN geführt werden.

War eine Sache von einer halben Stunde inklusive cronjob einrichten welcher mir dann hoffentlich das Zertifikat rechtzeitig erneuert.

Ich veröffentliche hier mit Absicht keine Anleitung, zum einen weil es davon schon genug gibt, zum anderen weil man mit der man-page des Pakets letsencrypt auch schon relativ weit kommt 🙂

Update (13.06.2016):

Inzwischen gibt es in den backports von Debian Jessie die Weiterentwicklung des letsencrypt-Clients, namentlich certbot. Hier ist im Paket schon ein Cronjob enthalten, der also automatisch die erstellten Zertifikate erneuert.

Ich musste allerdings vor der Installation die letsencrypt-Pakete deinstallieren, da es sonst zu Abhängigkeitsproblemen gekommen wäre. Danach ließen sich aber die entsprechenden certbot-Pakete installieren.

Wetter in bunt und mit Farbe :)

Falls du schon immer mal das Bedürfnis hattest das aktuelle Wetter abzufragen, aber keine Lust hast dafür die Konsole zu verlassen, dann habe ich die Lösung für dich 😀

Spaß beiseite, aber die Seite wttr.in lässt sich wirklich wunderbar auf der Konsole mit curl abfragen und liefert dann schön formatiert und sogar mit Farben das aktuelle Wetter. Über Parameter in der URL kann man die Stadt oder PLZ angeben.

Hier mal ein Beispiel:

$ curl wttr.in/Rothenburg\ ob\ der\ Tauber

wttr-in

Gefunden auf webupd8.

Vertauschte Farben einer LED-Leiste korrigieren

Ich hatte seit einigen Tagen ein Problem mit einer dieser günstigen LED-Leiste die ich zur indirekten Beleuchtung hinter meinem Schreibtisch befestigt habe. Und zwar waren dort plötzlich die Farben vertauscht. Also war der blaue Kanal auf einmal rot, der grüne dafür blau und der rote eben grün. Ich hatte schon einiges probiert von Stecker ziehen und warten bis wild auf der Fernbedienung herumdrücken 😀

Gerade bin ich durch Zufall auf ein Youtube-Video gestoßen, in dem erklärt wird wie man dieses Problem behebt:

Wenn die LED-Leiste an ist nacheinander auf ‚Power‘, ‚FADE7‘ und nochmal auf ‚Power‘ drücken. Falls die Farben noch nicht direkt wieder richtig sind das Ganze wiederholen bis die Farben passen.

Ich nehme an, bzw. hoffe, dass nicht alle Controller für diese LED-Leisten so eine bescheuerte Software haben die auf einmal die Farbzuordnung vergisst, aber zumindest bei meinem hat der Tipp geholfen 🙂

Und das Logfile wächst und wächst

ownCloudDurch Zufall bin ich gerade darauf gestoßen, dass das Logfile meiner Owncloud-Instanz ganze 22 MB groß ist und damit alle Logs enthält, seit ich es damals installiert habe. Dabei ist mir aufgefallen, dass sich seit dem wohl auch das Logformat etwas geändert hat, aber das ist jetzt hier eher unrelevant.

Was mache ich also nun gegen das stetige Wachsen des Logfiles? Nun, wie ich herausgefunden habe gibt es seit einiger Zeit schon eine rudimentäre Logrotation in Owncloud.

Und wie aktiviert man das? Relativ einfach. Man fügt einfach wie hier beschrieben den Parameter ‚log_rotate_size‘ in seine config.php ein:

<?php
$CONFIG = array(
...
  'log_rotate_size' => 1048576
);

In dem Beispiel habe ich die maximale Loggröße auf 1 MB gesetzt, erreicht das Log diese Größe wird es rotiert. Dies geschieht, indem an den Dateinamen des aktuellen Logs ‚.1‘ angehangen wird, aus owncloud.log wird also owncloud.log.1 und das war es dann auch schon. Ich dachte mir ich halte das hier mal fest, vielleicht ist es ja für den ein oder anderen auch hilfreich 🙂

Blog 2.0

Vor ein paar Jahren hatte ich schonmal einen Blog. Damals wollte ich das mal für mich testen, also das bloggen an sich. Deshalb habe ich damals auf das Dateibasierte flatpress gesetzt, weil es sich extrem schnell und mit vernachlässigbarem Aufwand einrichten lässt. Als wir dann vor einiger Zeit auf einen neuen Server umgezogen sind und damit auch der Server komplett umstrukturiert wurde war es nicht mehr ohne weiteres möglich den flatpress-Blog zu übernehmen, da jetzt quasi alles auf Docker basiert.

Den Blog hatte ich sowieso schon eine Weile links liegen lassen, deshalb war das erstmal kein Problem für mich. Das Thema Docker fand ich allerdings schon interessant. Deshalb habe ich mich dann dazu entschlossen den flatpress-Blog in ein Docker-Image umzuwandeln und wenn das dann geschafft ist sollte unter der Blog-URL ein ganz einfaches WordPress eingerichtet werden was mittels Docker innerhalb weniger Handgriffe erledigt ist.

Gesagt, getan. Docker-Image gebaut, gestartet, funktioniert, weggeschmissen und einen WordPress-Blog erstellt. Und hier ist mein neuer Blog, ich bin gespannt wie es diesmal laufen wird 🙂

PS: Nein, das ist natürlich alles kein April-Scherz 😉