Einsatz von curl und wget für Cronjobs

Neulich hatte ich das Problem, dass durch falsch konfigurierte Cronjobs auf einem Linux-Server dessen Plattenkapazität zu Ende ging und nichts mehr lief.  Es wurde festgestellt, dass wirklich Millionen gleichartiger Dateien in einem Verzeichnis lagen, die wie die gerufenen PHP-Scripte mit einer laufenden Nummer angehängt hießen. Zunächst dachten wir an Logfiles mit einem Timestamp, aber wer hätte die erzeugen sollen? Cron macht das nicht, das gerufene Script ebenfalls nicht.

In /etc/crontab standen die Aufrufe (schematisch) wie folgt:

1 1 * * 0  /usr/bin/wget http://domain/script.php

Das bewirkt aber, dass das Script script.php tatsächlich runtergeladen wird und da es ja schon da ist, wird dabei eine fortlaufende Nummer angehängt! Genau das ist die eigentliche Aufgabe von wget… Ich will das Script aber nicht haben, sondern ausführen!

Es fehlten nur geeignete Parameter, um Ausgaben und den Download zu unterdrücken. Dafür bieten sich zwei Möglichkeiten an:

1 1 * * 0 /usr/bin/wget -q [http://...] >/dev/null 2>&1

oder in der Wirkung äquivalent

1 1 * * 0 /usr/bin/curl --silent [http://...] >/dev/null 2>&1

Die dritte Möglichḱeit wäre hier gewesen, das PHP-Script  direkt aufzurufen, also PHP als CLI zu betreiben. Das schied aber hier aus, da sich das Script auf einem anderen Server befindet.


Danke an Matt Gutts mit seinem Beitrag „How to fetch a url with curl or wget silently“. Beachte auch die vielen ergänzenden Kommentare dort!

Dienste in Ubuntu automatisch starten

Hier wird gut beschrieben, wie ich in Ubuntu und Debian Dienste automatisch bei Booten starten kann oder dieses auch wieder entferne, Normalerweise wird das bei der Installation mit erledigt, aber wenn man z.B. einen anderen Webserver möchte, muss der bisherige künftig ausgeschaltet werden.

Quelle:
www.tippscout.de/ubuntu-dienste-automatisch-starten_tipp_5451.html

Um zum Beispiel beim Booten immer den mysql-Dienst zu starten, reicht

sudo update-rc.d mysql defaults

Dropbox installieren in Xubuntu 18

Dropbox Logo

In meinem eigenen Beitrag hier beschrieb ich im Februar 2016 die Mühen, die ich mit der Installation der Dropbox auf der damals noch laufenden Xubuntu-Version 14.04 hatte. Ich hatte es irgendwie hinbekommen, aber das war alles nicht so recht befriedigend. Wenig tröstlich war, dass ich anhand der Suchergebnisse sehen konnte, dass auch viele andere an der Aufgabe scheiterten.

Jetzt habe ich auch meinem Laptop ein Upgrade auf 18.04  verpasst – und prompt funktionierte die Dropbox nicht mehr. Das Symbol in der Taskleiste war wieder als „unbekannt“ dargestellt und blieb unbedienbar.

Für den Fall, dass Dropbox installiert ist und läuft:

dropbox stop rm -rf ~/.dropbox ~/.dropbox-dist sudo apt-get purge thunar-dropbox-plugin sudo apt-get autoremove

Dann neu installieren:

sudo apt-get install thunar-dropbox-plugin

Zum automatischen Start geeignet eintragen:

dbus-launch dropbox start -i

Also habe ich zunächst alles entfernt, was nach Dropbox aussah, und dann nach einigem Probieren diese Seite bei askubuntu.com  (englisch) gefunden, in der ein kurzer Weg beschrieben wird, der sogar sofort funktioniert. Hier die Zusammenfassung:

Nach einem Reboot sollte die Dropbox laufen und das Symbol in der Taskleiste sollte ordentlich aussehen und bedienbar sein.

Das „dbus-launch“ ist der entscheidende Hinweis! Alle anderen Wege, die so im Internet zu finden sind, scheinen voneinander abgeschrieben worden zu sein und funktionierten zumindest bei mir ausnahmslos nicht.

Skype für Linux – Fehlanzeige 2

Bereits im letzten Jahr habe ich hier beschrieben, dass Skype auf „älteren“ PCs (Hardware!) und Ubuntu 16.04 nicht funktionierte. Inzwischen habe ich das Upgrade auf Ubuntu 18.04 gemacht – und Skype funktioniert „anders nicht“. Man kann es problemlos installieren, egal ob als deb-Paket von der Skype-Website oder per „sudo snap install skype –classic“. Danach lassen sich die Nutzerdaten eingeben, das Hauptfenster startet und funktioniert, das Symbol in der Taskleiste erscheint und alles sieht gut aus.

Nur überlebt das den Neustart nicht. Mit etwas Glück erscheint das letzte Chatfenster von gestern. Schließt man das, merkt man, dass damit auch Skype selbst nicht mehr läuft. Startet man es händisch erneut, erscheint wie früher ein leeres Fenster, das beim Bewegen den Hintergrund „mitnimmt“ und sich nur mit kill, pkill oder xkill schließen lässt. Eine Meisterleistung von Microsoft, vielen Dank!

Upgrade Ubuntu 16 nach 18: einige Hürden

Die Entwicklergemeinde von Ubuntu hat es für gut befunden, einige beliebte Werkzeuge aus den Paketen ab 17.10 zu entfernen. Für manches gibt es Abhilfe, die ich hier kurz erwähnen und verlinken möchte. Der Beitrag wird fortgesetzt, wenn ich noch neues entdecke. Anregungen oder Korrekturen sind ausdrücklich willkommen, Fragen ebenso!

Pulseaudio Equalizer

Da meine Boxen eher mickrig sind und die Bässe nicht gut wiedergeben, habe ich immer den „Pulseaudio Equalizer“ benutzt, der der Klang merklich verbessert hat. Den gibt es nun nicht mehr. Ein guter Ersatz – wenn auch für mich viel zu umfangreich – ist pulseeffects, das allerdings über ein zusätzliches signiertes PPA eingebunden werden muss. Hier ist sehr gut beschrieben, wie die Installation geht (allerdings in englisch):

github.com/wwmm/pulseeffects/wiki/Package-Repositories#ubuntu-1710-and-newer

gksu / gksudo

Gksudo habe ich an einigen Stellen benutzt, beispielsweise beim Aufruf einer root-Shell über eine Tastenkombination, also nicht per sudo aus der Shell heraus. Aus Sicherheitsgründen oder warum auch immer wurde gksu / gksudo aus den Paketquellen entfernt, meine Shortcuts taten es nicht mehr.

Auf askubuntu.com beschreibt „N0rbert“ in seinem Beitrag einen kurzen und einen etwas längeren Weg der Nachinstallition des älteren Pakets, was bei mir prima funktionierte:

askubuntu.com/questions/1030054/how-to-install-an-application-that-requires-gksu-package-on-ubuntu-18-04
(konkret https://askubuntu.com/a/1030066)

Ein eleganterer und „richtigerer Weg, der sudo ausnutzt und nicht mit Tricks arbeitet, wird hier im Blog beschrieben!

Dropbox

Die Dropbox war auch unter Ubuntu 16 nicht ganz problemlos zu installieren, siehe hier. Bislang wurde die Dropbox wohl nicht für Ubuntu 18 angepasst, weswegen man die alten Pakete installieren muss. Wie das geht, steht hier (englisch):

www.linuxbabe.com/ubuntu/install-dropbox-ubuntu-18-04

Am Ende kam bei mir allerdings folgende nicht beschriebene Fehlermeldung:

Unable to monitor entire Dropbox folder hierarchy. Please run "echo fs.inotify.max_user_watches=100000 | sudo tee -a /etc/sysctl.conf; sudo sysctl -p" and restart Dropbox to fix the problem.

Das habe ich gemacht (Achtung, das sind eigentlich nur 3 Zeilen, die zweite ist überlang!):

dropbox stop
echo fs.inotify.max_user_watches=100000 | sudo tee -a /etc/sysctl.confsudo sysctl -p
dropbox start -i

Und schon lief die Dropbox wieder. Ich hoffe, auch nach dem nächsten Neustart…

WordPress: Benutzer nicht löschen!

Dieser Tage habe ich eine schmerzliche Erfahrung machen müssen. Auf der Website eines Kunden, die ich bisher betreut hatte, waren er und ich als Benutzer eingetragen. Da ich die Website erzeugt hatte, war ich der Besitzer aller Seiten und Beiträge. Das Ziel war, die Website endgültig zu übergeben, also ohne mich als Benutzer. Also löschte ich mich, dachte mir nichts weiter, fuhrr zum Kunden, wollte ihm alles zeigen – und fiel fast vom Stuhl.

Die Website war leer. Keine Seiten, keine Beiträge, nichts. Ausreden fielen mir gerade nicht ein…

Wichtig war jetzt, dass ich einen Zugang zu phpMyAdmin beim Provider hatte oder es eine eigene Installation gab. Ich setze hier mal die Kenntnisse zur Verwendung dieses Werkzeuges voraus.

Nach einer Analyse der Datenbank-Einträge (ich hatte so einen Fall noch nicht gehabt) sah ich, dass die Inhalte zwar noch da waren, aber als mit „trash“ in der Spalte post_status und dem Anhang „__trashed“ (sowas wie blabla__trashed) in der Spalte post_title gekennzeichnet. Das ließ mich hoffen.

Zunächst änderte ich alle Einträge auf den Besitzer, der noch übrig war. In der Tabelle wp_user stehen alle User, hier war es nur noch einer. Weit vorn steht dessen ID, die merkt man sich. Sind es mehrere User, sollte es einer sein, der wenigstens Redakteur ist. Auch wenn das Ergebnis jetzt sachlich falsch wurde, habe ich also alle Posts dem gleichen User zugeordnet: In phpMyAdmin / SQl also mittels „update wp_posts set id = 3“, wenn 3 die ID des gewünschten Users ist.

Jetzt wurde es mühsam. Bei einem Projekt mit Dutzenden Seiten und Beiträgen hätte ich mich Stunden und Tage damit beschäftigen müssen. Denn wenn Seiten und Beiträge tatsächlich mal gelöscht worden wären, hätten sie sich nicht von den verbliebenen unterscheiden. So aber ist die Website ja von mir erstellt und nicht geändert worden, es gab keine gelöschten Teile. Also änderte ich nun alle Kennungen in der Spalte post_status von „trash“ auf „publish“ und entfernte die Markierungen __trashed.

Jetzt waren zumindest die Seiten und Beiträge alle wieder da! Wenn man bedenkt, dass das ja live passiert, sollte alles recht schnell gehen, damit möglichst wenig Chaos öffentlich sichtbar wird.

Die Bilder fehlten allerdings noch – die waren wohl mit gelöscht worden (wobei?). Zum Glück gab es eine Sicherung von content/upload, die Bilder konnte ich damit auch zurückspielen.

Fazit:

Lösche niemals User in einem einigermaßen lebendigen WordPress-System! Man kann User, die mal Beiträge verfasst haben und nicht nicht mehr da sind, herunterstufen auf Abonnent, dann können sie nichts mehr machen, wenn sie sich noch einloggen.

Und vor allem: Immer fleißig Datensicherungen machen! Vor allem von der Datenbank und von wp_content/upload. Ersteres geht schon mit Bordmitteln über Werkzeuge/Export (und rückwärts bei Bedarf Import)..

DSGVO geht nach hinten los

Die am 25. Mai 2018 in Kraft getretene EU-Datenschutzverordnung und das daraus resultierende deutsche Bundesdatenschutzgesetz (BSDG neu) könnte in Schuss in den Ofen werden.

Sofort kamen die ersten Abmahnanwälte auf den Plan, die sich händereibend auf stattliche Gewinne durch überzogene Abmahnungen versprechen, was durch deutsche Gesetze noch gefördert oder jedenfalls nicht gebremst wird. Die ersten Vereine haben ihre Website geschlossen, kleine Gewerbetreibende ihre Shops – das kann doch nicht Sinn der Sache sein!

Es bleibt abzuwarten, ob die Bundesregierung und die entsprechenden EU-Gremiendieses mit heißer Nadel und desinteressiert gestrickte Machwerk nochmal überarbeiten. Irgendwie ist das doch inzwischen typisch deutsch und sogar europäisch: Erstmal ein Gesetz erlassen, es dann kassieren lassen und das Problem aussitzen…

Ein sehr schöner Link hierzu:

Quelle:
heise.de/tp/features/Nachbesserungsgesetz-soll-negative-Folgen-der-DSGVO-eindaemmen-4059139.html

Impressum bei Websites und EMails

Immer wieder bekomme ich EMails von Firmen, die eigentlich wissen sollten, wie ein Impressum aussieht und dass es kein Unterschied ist, ob es um eine Website oder eine EMail geht. Deswegen schreibe ich das hier mal auf, auch wenn es sich aus dem gleichen Telemedien-Gesetz (TMG) § 5 ableitet. Ich unterscheide bewusst nicht zwischen Website und EMail, denn für beides gelten die gleichen Regeln.

Was muss im Impressum stehen:

  • Benennung des Betreibers
    mindestens eine namentlich genannte Person
  • Rechtsformzusatz
    GmbH, OHG, GbR oder auch nichts bei Einzelunternehmen
  • Vertretungsberechtigter
    wenn vorhanden, namentlich genannte Person/en
  • Ladungsfähige Anschrift
    also eine echte Postanschrift, kein Postfach!
  • EMail-Adresse
  • Telefonnummer
    oder eine andere unmittelbare Art der Kontaktaufnahme – aber was sonst?
  • die internationale Umsatzsteuer-ID („DE…“), wenn vorhanden,  und Handelsregisterdaten

Was steht nicht im Impressum:

  • Der unsägliche Disclaimer:
    Irgendwelche Haftungsausschlüsse
  • Hinweise zur „Geheimhaltung“:
    „Diese Mail enthält geheime Firmendaten und ist nicht für fremde gedacht“ oder so. Eine Website ist immer öffentlich sichtbar, und wenn eine EMail geheim ist, ist sie das falsche Medium.
  • Umsatzsteuer-Nummer oder USt.-ID:
    Wie 123/456/7890 oder DE1234567, denn die kann von jedermann für Rückfragen beim Finanzamt missbraucht werden

Quellen:

onlinemarketing-ihk.de/blog/2015/06/02/aktuell-diese-angaben-muessen-im-impressum-stehen

existenzgruendung-berlin.info/2013/07/01/warum-im-impressum-keine-steuernummer-stehen-soll

Cookie-Hinweis auf Webseiten

Ehrlich gesagt, mich nervt der aufpoppende, sich einschiebende, manchmal alles überdeckende Cookie-Hinweis auf Websites. Wenn das ungeschickt oder unwissend gemacht ist, bekommt man den zumindest auf Smartphones nicht wieder zu, weil man den Button zum Schließen nicht erreicht. 

Ich empfinde diesen Auswuchs der neuen Datenschutzempfehlungen auch deswegen so nervend wie nutzlos, weil kaum ein Normal-User weiß, was ein Cookie (Keks?) ist, was damit gemacht wird und dass der in der Regel ungefährlich ist, weil vom User nichts drin steht.

Aber da ja heutzutage überall von Datenschutz geredet wird und im Übrigen alle voneinander abschreiben, macht eben jeder, was die anderen auch machen. Dabei ist hier [1] zu lesen, dass die gängige Praxis zumindest in Deutschland gar nicht gefordert ist, sondern bestenfalls eine abgeschwächte Empfehlung darstellt.

Für mich artet das langsam in Hysterie aus. Haben die in Brüssel nichts besseres zu tun? Aber sicher, Abmahn-Anwälte und Webdesigner (!) müssen ja auch Arbeit haben…

Quelle:
[1] Team Meuter: Cookie-Hinweis nach der neuen Datenschutz-Grundverordnung (DSGVO)