Episode 68/2017: Durcheinander scp, ssh und uwsgi

Wieder was gelernt. Genauer gesagt, drei Dinge. Fangen wir an:

  1. Caching mit nginx ist eine tolle Sache. Auf einem Server wollten wir die Auswirkung von „Microcaching“, bei dem die Ressourcen beispielsweise nur 1 Sekunde lang vorgehalten werden, prüfen. Caching-Parameter gibt es z.B. als proxy_cache_*, scgi_cache_* oder fastcgi_cache_* Direktiven. Wir brauchten die uwsgi_cache-Direktiven für eine Django-App.
    Alles da, wunderbar.
    Aber: Ausgerechnet das tolle uwsgi-Modul hat keinen Defaultwert beim uwsgi_cache_key. Der Key setzt sich normalerweise aus verschiedenen Parametern wie dem Schema, dem Host und dem Request-URI zusammen, darüber wird ein MD5-Hash gebildet und die Dateien darüber identifiziert.
    Bei leerem Cache-Key wird genau eine Datei zwischengespeichert (die erste, die angefragt wurde) und jeder weitere Request führt zur gleichen Datei. Nicht gut.
  2. Kopieren mit scp. Du sitzt auf Rechner A, willst etwas von Rechner B auf Rechner C kopieren? Von A aus hast Du Zugriff auf B, aber wenn dann von B nach C kopiert wird, fehlen C die entsprechenden Credentials – was tun?
    „scp -3“ kopiert die Datei von B nach A und dann von A nach B. Schön unauffällig, aber sehr praktisch.
  3. Du hast eine ~/.ssh/config Datei mit verschiedenen nützlichen und spezifischen Host-Angaben, insbesondere gibst Du via IdentityFile Deinen Key an? Wenn Du sicherstellen willst, dass wirklich genau nur dieser Key benutzt wird und keine anderen beim Verbindungsaufbau probiert werden, setze „IdentitiesOnly yes“ mit dazu.
    Sagt die Doku: „Specifies that ssh(1) should only use the authentication identity and certificate files explicitly configured in the ssh_config files or passed on the ssh(1) command-line […]“.

Das wars.

Tag 312/2016: Endspurt

November, Dezember. Kurz vor und dann während der staaden Zeit passieren ja eigentlich immer noch alle möglichen wilden Dinge, die aus einem kosmischen Grund nicht die Monate davor passieren konnten.

Ein bisschen Motivation schadet zur Wahnsinnsbewältigung also nicht, wie schon der große Dan Gable wusste.

Hier in Form eines Bildschirmschonermotivationsspruchs.

Tag 270/2016: Links für 12 Wochen Urlaub

http://riemann.io/
Aggregation von Events

http://socket.io/
Bidirektionale ereignisbasierte Echtzeitkommunikation

http://speed.pypy.org/
Eine Implementation von CPython

https://falconframework.org/
Schnelles, minimalistisches Python-Framework

http://openresty.org/download/agentzh-nginx-tutorials-en.html

 

Tag 117/2016: Schneller Dateien kopieren mit rsync unter El Capitan

Beim Kopieren großer Datenmengen fordert das kleine Fenster mit der Meldung „Kopieren vorbereiten“ schon einiges an Geduld. Selber schuld, wenn man in der GUI mit der Maus Ordner hin- und herschiebt. Irgendwann, bei Datei 183.339 habe ich es abgebrochen. Es gibt ja rsync.

Im Terminal dann die Ernüchterung:

rsync --version
rsync version 2.6.9 protocol version 29

Buh, 2.x. Das äußert sich nämlich so:

rsync -avh --progress ~/Backups/* /Volumes/backups/
building filelist...

building filelist…“ ist auch nur „Kopieren vorbereiten“.  Die Optimierung ist möglich via homebrew:

brew tap homebrew/dupes
brew install rsync

Homebrew/dupes führt die Pakete (Formeln) für Systemduplikate, also z.B. eine neuere Version von rsync. „tap“ erlaubt brew den Zugriff auf das Repository mit den Formeln.

Danach (ggf. ein neues Terminal starten):

rsync --version
rsync version 3.1.2 protocol version 31

Gut so. Jetzt sollte bei der Ausführung des Befehls der Hinweis: „sending incremental filelist…“ kommen und der Kopiervorgang nahezu sofort starten.