Benutzer-Werkzeuge

Webseiten-Werkzeuge


blog

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"
}
2017/03/03 12:13 · haiko · 0 Kommentare · 0 Linkbacks

Piwik update auf 3.0 Fehler: Call to undefined method MenuTop::add()

In den Logdateien findet sich

... stderr: PHP message: Error in Piwik: Call to undefined method Piwik\\Menu\\MenuTop::add(), referer: ......

In meinem Fall war es das Plugin „PerformanceMonitor“, das den Fehler auslöste. Ich denke, das es noch nicht kompatibel mit der neuen Piwik Version ist. Das Plugin habe ich erstmal auskommentiert:

;Plugins[] = "PerformanceMonitor"

Weitere Hilfestellung findet sich hier:

https://github.com/piwik/piwik/issues/10876

2016/12/20 17:06 · haiko · 0 Kommentare · 0 Linkbacks

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/
2016/10/04 17:32 · haiko · 0 Kommentare · 0 Linkbacks

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:

Unity Tweak Tool

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 :)

Mod Mod Drumpf

Moto G Falcon 2103

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.

2016/04/01 14:42 · haiko · 0 Kommentare · 0 Linkbacks

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
2015/10/12 21:16 · haiko · 0 Kommentare · 0 Linkbacks

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.

openshift online mysql enviroment vars nicht verfügbar unter php

Da sich das Umgebungssetting zb durch Wartungsarbeiten schnell mal ändern kann, wollte ich in einer PHP Konfigurationsdatei (zu gnusocial) den Datenbankhost nicht „hard coden“ sondern durch die bereitgestellte Umgebungsvariable ersetzen:

$_ENV['OPENSHIFT_MYSQL_DB_HOST']

Die Variable war aber leer. Ein Neustart der App hat auch nichts gebracht. Abhilfe hab ich im Openshift Forum gefunden:

rhc app force-stop APPNAME
rhc app start APPNAME

Danach stand sie zur Verfügung. Mehr zu Gnusocial auf OpenShift

2015/02/18 15:06 · haiko · 0 Kommentare · 0 Linkbacks

openshift online app-root mount with sshfs

$ sshfs ID@APPID-YOURDOMAIN.rhcloud.com:/var/lib/openshift/ID/app-root/repo/ path/to/mount/
2015/02/18 12:33 · haiko · 0 Kommentare · 0 Linkbacks

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..

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;
2014/12/08 13:13 · haiko · 0 Kommentare · 0 Linkbacks

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.

2014/11/17 15:25 · haiko · 0 Kommentare · 0 Linkbacks

sqlite und timestamps

Kleine Notiz für mich. In einer Sqlite Datenbank wurden Events mit einem Unix Timestamp versehen. In Sqlite gibt es einige nützliche Helferlein um mit dem Datum zu operieren. Hier sollte der Timestamp (gleichnamige Spalte) in der Tabelle umgewandelt werden in ein lesbares Datum:

SELECT DATE(TIMESTAMP,'unixepoch') AS datum FROM USER

Man kann auch eigene Formatierungen vornehmen wie man es von der PHP Funktion strftime kennt. Hier ein Beispiel, was den Wochentag ausgibt:

SELECT strftime("%W",TIMESTAMP,'unixepoch') AS HOUR FROM USER

Mehr in der Dokumentation von Sqlite: https://www.sqlite.org/lang_datefunc.html

2014/11/10 11:28 · haiko · 0 Kommentare · 0 Linkbacks

HTTP_AUTHORIZATION, PHP und FCGI

Für eine Shared Hosting Umgebung wollte ich ein PHP Skript mit einem einfachen Passwortschutz versehen. Lokal läuft alles super, da ist PHP5 auch als Modul im Apache installiert. Der Hoster wickelt mit FCGI die PHP Anwenunden ab wo die Umgebungsvariablen für den Apachen nicht zur Verfügung stehen. Die Lösung so weit, für die .htaccess:

RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]

Hier https://groups.google.com/forum/#!msg/symfony-devs/jKphNy_0Q2Y/vYfkAuyjSHEJ gefunden.

2014/10/30 15:30 · haiko · 0 Kommentare · 0 Linkbacks

screen benutzen für wartungsarbeiten

Da ich leider mit vielen Verbindungsproblemen, Disconnects zurecht kommen muss und es einfach nervt wenn man bei der Arbeit seine Session verliert hab ich mich nach Möglichkeiten umgeschaut um trotz Disconnect die Session / Arbeit nicht ins Nirvana zu schiessen. Wie hier schonmal erwähnt, wurde screen benutzt um rtorrent am laufen zu halten wenn man sich abmeldet. Screen ist quasi ein Fenstermanager fürs Terminal (Terminalmultiplexer).

Wenn die Situng per SSH aufgebaut ist starte ich screen und öffne zum Beispiel den Editor um eine Konfiguation zu bearbeiten. Verliere ich nun die Sitzung, läuft der Editor trotzdem noch weiter und kann ihn bei der nächsten Sitzung wieder hervorbringen.

# neues fenster mit namen updatekram erstellen
screen -S updatekram
 
# auflisten vorhandene Fenser
screen -ls
There is a screen on:
        6703.updatekram (21.08.2014 18:47:27)   (Attached)
1 Socket in /var/run/screen/S-haiko.
 
# fenster in den hintergrund
screen -d updatekram
 
# fenster in den vordergrund
screen -r updatekram

Es gibt eine Reihe von Tastenkombinationen um die Fenster zu verwalten, siehe im Wiki von ubuntuusers wo screen ausführlich behandelt wird.

Erwähnt sei noch Byobu, sowas wie die Luxuserweiterung von screen mit vielen Einstellungsmöglichkeiten was das Fenstermanagment sehr bequem macht.

Ältere Einträge >>

Linkbacks

Sende manuelle Trackbacks an folgende URL:http://datenfahrt.org/wiki/lib/plugins/linkback/exe/trackback.php/blog
Mindmapping mit html5 – exdc, 2011/08/04 11:55 (Pingback)
[...] Haikos [...]
 
blog.txt · Zuletzt geändert: 2014/06/08 17:11 von haiko