~~DISCUSSION:off~~
linux-odroid-c2-31479-25 und Docker + aufs
Odroid C2 ist meiner Meinung nach, ein gelungenes Teil. Es bietet angenehme Arbeits u Netzwerkgeschwindigkeit und schnurrt hier mir Arch Linux (Alarm) vor sich hin. Nach dem letzten Kernel Update (auf odroid-c2-31479-25) gabs ein Problem mit Docker und aufs…
~~LINKBACK~~ ~~DISCUSSION~~
pretty print json python cli schnipsel
$ python -mjson.tool /path/to/file.json
Beispiel
haiko@haiko-u:~$ python -mjson.tool /tmp/json.tmp { "body": "fgfdgdfg", "meta": { "length": 8, "remoteAdress": "172.17.0.2:52331", "timestamp": "2017-03-03T11:07:16.414644Z" }, "url": "2a6af7e0-02e4-4723-bdc6-e37b82e81b6e" }
~~LINKBACK~~ ~~DISCUSSION~~
Web Interface für OPcache
https://github.com/amnuts/opcache-gui
wget https://raw.githubusercontent.com/amnuts/opcache-gui/master/index.php cp index.php /srv/www/somewhere/
~~LINKBACK~~ ~~DISCUSSION~~
Upgrade 14.04.4 zu 16.04
Da ich ein frisches Image der SSD vom Desktop vorliegen hatte, beschloss ich recht impulsiv, das 14.04 LTS auf 16.04 LTS zu bringen. Auf dem empfohlenen Weg läuft das erstmal nicht.
14.04 LTS to LTS upgrades will be enabled with the 16.04.1 LTS point release, in approximately 3 months time. (read more)
Wer auf dem richtigen Pfad bleiben möchte, der sollte bis Version 16.04.1 (ca. Juli?) warten und ein Upgrade durchführen. Wer nicht, triggert mit do-release-upgrade -d
.
Bis jetzt bereue ich den Schritt nicht, würde es aber dennoch nicht weiterempfehlen und anraten bis 16.04.1 zu warten. Da keine „Knaller“,etc. enthalten sind, sondern eher Feinschliff, muss man sich überlegen ob ein Upgrade überhaupt notwendig ist. Geht es primär nur um einen frischeren Kernel, muss man keine Backports mehr nehmen und sollte sich über LTS_Enablement_Stacks informieren. Das ist eine Möglichkeit, ohne Upgrade oder Backports unter 14.04 einen aktuelleren Kernel zu nutzen.
was gibts neues
Ich kann nur für meine Hardware sprechen, ein Laptop mit Core i5 und Intel HD Grafik. Was sich hier verbessert hat und was ich mir auch gewünscht habe, war:
subjektiv: der lüfter ist besser gesteuert. Es wirkt insgesamt ruhiger. Unter 14.04 wurde es manchmal sehr laut - auch bei geringer Last.- Bildschirmhelligkeit. Es war nicht möglich bei 14.04, ohne ein Workaround die Bildschirmhelligkeit zu regeln. Nachdem Workaround war man zwar in der Lage dazu aber nach einem Reboot muss man wieder die Bildschirmhelligkeit einstellen :( Jetzt funktioniert es so, wie es sollte.
- PHP7, jo, gerne.
- Systemd, gerne.
- Wlan - ich nutze zuhause kein wlan und unter 14.04 musste man nach jedem Neustart, das WLAN deaktivieren. Jetzt funktioniert es.
- Tastaturbeleuchtung. Nun schaltet sie ab, wenn man das Keyboard nicht nutzt. Auch da gab es Probleme unter 14.04
- Wie für viele, ist es auch für mich ein weiteres Highlight, das man den Launcher nach unten platzieren kann. Endlich.. Man kann das über das Unity Tweak Tool einrichten:
Ein Satz zu systemd. Wenn man bisher nur mit upstart gearbeitet hat, muss man sich jetzt in systemd einarbeiten. Hilfreich dazu finde ich das Cockpit Projekt. Das Projekt ist gedacht um das System via Browser zu administrieren und zu erforschen. Ein Blick lohnt sich!
kleine Probleme
Das Upgrade lief erstmal ohne Kopfzerbrechen durch und die ersten Probleme wurden dann nach dem Neustart sichtbar…
Bluetooth
Ein Problem was hier auftrat: Nach Resume aus dem Schlafmodus wurde Bluetooth nicht wach. Das Bluetooth Symbol ist auch ausgegraut und reagiert auf keine Aktionen (on/off). Startet man die Bluetooth Einstellungen, steht auch Bluetooth wieder zur Verfügung. Gleiches Verhalten löst ein restarten des Dienstes über systemctl
. Aber möchte man sich das jedesmal antun, wenn der Rechner aufgeweckt wird?
Der Befehl systemctl status bluetooth
lieferte Fehlermeldungen wie:
Apr 23 12:02:50 computer-u bluetoothd[1003]: Not enough free handles to register service
Es hat sich am Ende eher zufällig herausgestellt, das der Batteriesaver TLP da eine Rolle gespielt hat. Ich habe das völlig vergessen, aber ich habe TLP zusammen mit Ubuntu 14.04 installiert. Bisher gab es keine Probleme dieser Art. Nach deaktivieren (letzendlich auch dann deinstalliert) funktionierte Bluetooth (+ Audio) nach dem Resume wieder. Man kann das sicherlich konfigurieren, aber das wird auf später verschoben.
Auszug aus pm-powersave.log | grep blueto
:
Notice: '/usr/lib/pm-utils/power.d/usb_bluetooth' disabled by TLP. /etc/pm/power.d/usb_bluetooth false: success. Running hook /etc/pm/power.d/usb_bluetooth false: Notice: '/usr/lib/pm-utils/power.d/usb_bluetooth' disabled by TLP. /etc/pm/power.d/usb_bluetooth false: success. Running hook /etc/pm/power.d/usb_bluetooth false: Notice: '/usr/lib/pm-utils/power.d/usb_bluetooth' disabled by TLP. /etc/pm/power.d/usb_bluetooth false: success. Running hook /etc/pm/power.d/usb_bluetooth false: Notice: '/usr/lib/pm-utils/power.d/usb_bluetooth' disabled by TLP. /etc/pm/power.d/usb_bluetooth false: success.
Andere
kommt noch :)
~~LINKBACK~~ ~~DISCUSSION~~
Mod Mod Drumpf
Nach dem Update auf das Nightly vom 1.4.2016 hat mich „Drumpf“ (MOD MOD DRUMPF) begrüsst. Ein Aprilscherz, der noch weiterging. Vor jedem Text, egal wo wurde ein „Mod“ davor gestellt. Mehr Infos und was „Drumpf“ da sucht, kann man mit Google herausfinden. Ich bin dann wieder zurück zum Nightly vom 31.3.2016.
Auf der anderen Seite denke ich, man wird daran erinnert, das man kein stabiles Release nutzt und ein Nightly Update auch mal gerne schief laufen kann.
Ansonsten habe ich bisher keine Nachteile durch den Umstieg von 5.x (letztes offizielle update seitens Motorola) Stock auf Android 6 via CM erlebt.
~~LINKBACK~~ ~~DISCUSSION~~
Banana Pi M2 und Arch Linux
Arch Linux für den Banana Pi M2 ist eine wohltat für mich und die Kiste. Auf dem Rasperry Pi lief Arch wirklich rund. Eine erste Anlaufstelle habe ich hier gefunden: http://forum.banana-pi.org/t/prototik-working-wifi-on-modern-kernels-4-1-tested-for-bpi-m2/88 . Ich bin gespannt, wie es im 24/7 Betrieb läuft..
Linux bananapi.lan 4.2.3-1-ARCH #1 SMP Sun Oct 4 19:21:55 MDT 2015 armv7l GNU/Linux
Die Installation scheiterte allerdings nach einem Kernelupdate (> 4.2.3). Davor lief das Gerät sehr stabil als NAS, LAMP und Mediencenter (mediatomb) 24/7 über einige Wochen. Mir fehlt leider die Zeit, um auf Fehlersuche zu gehen (vermutlich ist es nur eine Kleinigkeit).
Mir ist dann noch Armbian aufgefallen. Auf den ersten Blick wirkt die Quelle solide und gut gepflegt. Ein Blick auf die Debian Jessi basierende Distri lohnt sich: http://www.armbian.com/banana-pi-m2/
Linux bananapi.lan 4.2.6-sunxi #1 SMP Sun Nov 29 10:33:44 CET 2015 armv7l GNU/Linux
~~LINKBACK~~ ~~DISCUSSION~~
Owncloud Update Notizen 7.0.4 to 8.0.2
Trotz der vielen Hinweise im Internet über den Fail beim Upgrade auf 8.0.x habe ich es einmal getestet als heute Morgen der Hinweis im Webinterface aufgetaucht ist. Dank Snapshots ist das zurückkehren kein Problem. Hier die Notizen dazu:
- Der Auto Updater von Owncloud verrichtete seinen Dienst. Keine Auffälligkeiten. Zu beachten ist allerdings, das ich alle Plugins (Apps) deaktiviert habe bevor ich das Upgrade startete.
- Nach dem Update folgte der erste Request und es schien alles geklappt zu haben. Wenig später stellte sich heraus, das nix so ist wie es scheint.
Im folgenden:
Calendar und Kontakte
Nach Aktivierung der Kontakte und Calendar App war Owncloud erstmal „halb tot“ mit folgender Fehlermeldung:
Class OCA\Contacts\Share\Addressbook contains 1 abstract method and must therefore be declared abstract or implement the remaining methods
Die beiden Apps mussten deaktiviert werden. Weil man kein Zugriff mehr auf das Webinterface hat, kann man das mit dem Mysql Client erledigen:
$ mysql owncloud-db-name -u username -p mysql> update oc_appconfig set configvalue="no" WHERE appid="contacts" AND config_key="enabled"; mysql> update oc_appconfig set configvalue="no" WHERE appid="calendar" AND config_key="enabled";
Kontakte und Calendar App musste neu installiert werden. Ich habe die beiden Apps im Verzeichnis data/apps
gelöscht und dann über Owncloud unter „Empfohlene Apps“ neu installiert. Nach dem Refresh werden die Tabellen geupdatet und schon lief wieder alles. Letztendlich bin ich mit allen nicht funktionierenden Apps so vorgegangen (Dokumente).
Cronjob
Wer per Cronjob abarbeiten lässt wird vermutlich mit Logeinträgen und/oder Emails überflutut (je nachdem in welchen zeitlichen Abständen das Script „cron.php“ ausgeführt wird) mit der Meldung:
"Another instance of cron.php is still running!"
Als erstes löschte ich im Verzeichnis data/ die Datei cron.lock. …. wer jetzt hier eine präzise Lösung erwartet muss ich enttäuschen. Es lief dann irgendwann einfach wieder.. sorry.
Hilfreiche Links:
An dem folgenden Artikel schließe ich mich gedanklich an und werde mich auch nach anderen Möglichkeiten umsehen aber Owncloud weiterhin beobachten. ich wünsche mir eine Software, die Features nicht zur obersten Priorität erklärt und auf mehr Stabilität und Zuverlässigkeit der Core-Funktionen setzt. Ich habe die Hoffnung (noch) nicht aufgegeben.
~~LINKBACK~~ ~~DISCUSSION~~
openshift online app-root mount with sshfs
$ sshfs ID@APPID-YOURDOMAIN.rhcloud.com:/var/lib/openshift/ID/app-root/repo/ path/to/mount/
~~LINKBACK~~ ~~DISCUSSION~~
Authentication refused bad ownership or modes for directory
Wenn das passwortlose Anmelden mittels Public Key nicht gelingt und stattdessen das Passwortprompt immer wieder erscheint, lohnt es sich auf dem Remotehost /var/log/auth.log
anzuschauen. Das Problem wurde dann sichtbar:
sshd[12472]: Authentication refused: bad ownership or modes for directory /home/bla
Hier hab ich ein Problem mit den korrekten Dateiberechtigungen auf dem Remotehost was SSH verlangt. Umgehen kann man das, wenn der StrictMode abgeschaltet wird - besser aber sollten die korrekten Berechtigungen auf dem Remotehost vergeben sein:
chmod go-w ~/ chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys
Mehr dazu unter http://www.openssh.com/faq.html#3.14 bzw Google..
~~LINKBACK~~ ~~DISCUSSION~~
php IteratorAggregate
Das IteratorAggregate Interface verlangt die Methode getIterator
. Hiermit lässt sich mittels foreach
über die Objekteigenschaften iterieren:
Beispiel:
<?php class Test implements IteratorAggregate{ private $vars = []; public function __construct(array $newvars = []){ $this->vars = array_merge(["das","ist","ein","test"],$newvars); } public function getIterator() { return new ArrayIterator($this->vars); } public function __toString(){ return json_encode($this->vars,JSON_PRETTY_PRINT); } } $t = new Test(['und','das','interface','ist','cool!']); foreach($t as $value){ printf("%s \n",$value); } print $t;
~~LINKBACK~~ ~~DISCUSSION~~
mod_evasive und das piwik dashboard
Mod Evasive kann ein zusätzlicher Schutz sein wenn der Apache mit DoS Angriffen konfrontiert wird. Manchmal sperrt man auch gutartige Benutzer aus, gerade wenn sie requestlastige Webdienste aufrufen wie in diesem Fall das Piwik Dashboard. Betroffen war auch die Android App, die keine Daten mehr anzeigt dafür aber Netzwerkfehler. In den Log Dateien taucht mehrmals die eigene Ip Adresse auf:
[Sat Nov 11 17:17:25.611453 2014] [evasive20:error] [pid 12512:tid 139763923277568] [client 154.70.38.0:46393] client denied by server configuration: ..../piwik/index.php
Im Log Ordner von Mod Evasive (meist) /var/log/mod_evasive/ kann man sich auch finden:
$ /var/log/mod_evasive# ls dos-154.70.38.0
Da die IP Adresse dynamisch vergeben wird, bringt es auch nicht viel, sie auf die Whitelist zu setzen. Bevor man auf die Idee kommt, das Modul wieder abzuschalten, kann man mit den Einstellungen experimentieren und versuchen DOSPageCount und DOSSiteCount herauf zu setzen:
<IfModule mod_evasive20.c> DOSHashTableSize 3097 DOSPageCount 5 DOSSiteCount 140 DOSPageInterval 1 DOSSiteInterval 1 DOSBlockingPeriod 10 .. </IfModule>
Hilfreich bei den Einstellungen sind die Developer Tools in Chrome / Firefox, wenn man sich anschaut wie viele Requests abgefeuert werden auf die eigene Seite. Wenn zum Beispiel ein kleines Büro sich die öffentlich IP teilt und gleichzeitig auf das Dashboard zugreift sind die neuen Einstellungen nicht mehr gross genug ausgelegt. Wie man sieht kann das Modul Kopfzerbrechen bereiten.
~~LINKBACK~~ ~~DISCUSSION~~