Inotify: Dateien überwachen

Sobald eine bestimmte Datei verändert wird möchte ich ein Archiv erstellen oder die Datei auch einen Server hochladen, oder auf meiner NAS eine LED anschalten. Bei der Suche nach einem passenden Werkzeug blieb ich sehr lange bei einer Endlosschleife die regelmäßig die Datei oder das fragliche Verzeichnis auf die erwartete Änderung abfragte.

Inotify-Events
KürzelFormat
ACCESSZugriff auf die Datei
ATTRIBMetadaten geändert
CLOSE_WRITEzum Schreiben geöffnete Datei geschlossen, sie muss nicht geändert worden sein
CLOSE_NOWRITEEine Datei wurde geschlossen nachdem sie schreibgeschützt geöffnet wurde
CREATENeue Datei angelegt
DELETEDatei gelöscht
DELETESELFÜberwachtes Verzeiuchnis gelöscht
MODIFYDatei modifiziert
MODIFYSELFÜberwachtes Verzeichnis modifiziert
MOVEDFROMDatei aus dem überwachten Verzeichnis verschoben
MOVEDTODatei in das überwachte Verzeichnis verschoben
OPENDatei geöffnet

Zur Überwachung meines WordPress Verzeichnises auf neue Dateien kann ich folgende Befehlszeile nutzen:

Mir werden dann vor allem viele Dateien wp-content/temp-write-test-1492771373, mit abweichenden Nummern am ende, angezeigt, jedoch auch die ganzent Updates und anderen Schreibvorgänge.

Um herauszufinden welche Dateien „angefasst“ werden reicht eine kleine änderung auf:

Ein sehr nützliches Werkzeug, auch für die Fehleranalyse. 😉

Scan to Donate Bitcoin
Like this? Donate Bitcoin to at:
Bitcoin 19eq3AeAppCQ4YuHk5aQkYjAqay1kz7bUo
Donate

Logging Verhalten von Debian 8

Bei minimalen Debian 8 Bezeihungsweise Debian Jessie Installationen fehlt machmal das auth.log. Der Grund das nicht migeloggt wird ist das fehlende Paket rsyslog.

Das Paket rsyslog kann einfach mit dem folgenden Befehl nach installiert werden.

Das Paket rsyslog wird auch bei Virtuellen Servern absichtlich nicht mit installiert um die Server über weniger Festplattenzugriffe zu „beschleunigen“.

Solltest du einen Virtuellen Server betreiben entferne das Logging aller Daten die du nicht ubedingt auswerten musst. (oder möchtest) Weniger Mitgeloggte Daten entsprechen nicht nur der gebotenen Datensparsamkeit, nicht geschreibene Daten belasten auch die Festplatte nicht und ermöglichen bei Virtuellen Servern trotz geringer IO-Resourcen den Reibungsfreieren Betrieb der eigenen Dienste.

Scan to Donate Bitcoin
Like this? Donate Bitcoin to at:
Bitcoin 19eq3AeAppCQ4YuHk5aQkYjAqay1kz7bUo
Donate

Server Benchmark Test from Loteks

Ab dem erleben dieser wird es interessant das Ergebnis eines Benchmarks zu haben um belastbare Zahlen zum vergleich zu haben.

Ein Benchmark? Es gibt für Linux unglaublich viele Benchmark Werkzeuge. Ich möchte kein Benchmark Werkzeugs. Ich möchte nichts großes und ich will nicht herausfinden welches Werkzeug den Parameter misst der mich interessiert.

Ich möchte ein einfachen kleinen Hack der Messen kann was mich interessiert!

Zu diesem Zweck dient dieser Artikel

Dieser Artikel ist ein wenig im Fluss und wird je nach vorliegenden Kommentaren angepasst.

Messen der CPU Geschwindigkeit: (Pi bis zur Stelle 5000 berechnen)

Messen der Festplatten Schreibrate:

Messen der Festplatten Leserate:

Messen der Netzwerkgeschwindigkeit:

Für alle die Virtuelle Server gemietet haben:
Ja, es ist schade das euer VServer wirklich langsam ist. Lebt damit! Ihr teilt euch die CPU, Netzwerkverbindung und die Festplattenzugriffszeiten mit anderen. Seid sozial und übertreibt es nicht mit den Festplattenzugriffen, die anderen wollen auch mal. Lebt mit den 10MByte lese und Schreibrate!
Wenn es darauf ankommt nutzt doch bitte dedizierte Server!

Scan to Donate Bitcoin
Like this? Donate Bitcoin to at:
Bitcoin 19eq3AeAppCQ4YuHk5aQkYjAqay1kz7bUo
Donate

Bitte spielt nicht mit den Logdateien

Vor kurzem durfte ich erleben das Festplatten ohne guten grund voll belegt waren, da Administratoren auf die Idee kamen im Log Verzeichnis die Logfiles zu komprimieren.

Bitte ändert die Dateien im LogVerzeichnis nicht! Der Logrotate Dienst wird die Dateien nicht mehr finden und die Datei bleibt für immer dort liegen.

Um Logfiles zu rotieren benutzt logrotate!

Der Aufruf für das rotieren der Logfiles lautet:

Scan to Donate Bitcoin
Like this? Donate Bitcoin to at:
Bitcoin 19eq3AeAppCQ4YuHk5aQkYjAqay1kz7bUo
Donate

Alle TCP/UDP Ports prüfen

Ich suchte im Netz eine Möglichkeit in einem Fremden Netzwerk die erlaubten offenen Ports zu entdecken, leider fand ich keine „out of the box“ Lösung im Internet und baute mir die hier dokumentierte Lösung.

Der Netzwerk Computer ist in der folgenden Konfiguration mit meinem Testserver verbunden.:
nmap-netzwerk für den Netzwerkscan
Auf der Laptop Seite hinterlege ich einen neuen SSH Private Key übertrage einen zugehörigen Public aus dem Server in die Datei ~/.ssh/authorized_keys:

Auf der zu testenden Seite legte ich mir dieses kleine Shellscript ab, das nach und nach Netcat lokal auf verschiedene Ports lauschen lässt und im Anschluss versucht die Ports von der Serverseite aus zu erreichen.:

Um Netcat an UDP-Ports senden, oder auf UDP Ports lauschen zu lassen kann die Option -u mit angegeben werden.

Diese Methode dauert selbstverständlich ewig und ist nur anwendbar wen wenige Ports zu durchsuchen sind und nicht wie im Beispielscript angegeben alle 65535.

Scan to Donate Bitcoin
Like this? Donate Bitcoin to at:
Bitcoin 19eq3AeAppCQ4YuHk5aQkYjAqay1kz7bUo
Donate

Hostkeys und Moduli für sshd erneuern

Bei einem neu eingespielten Raspberry Pi Betriebssystem Image sollten die Hostkeys und die Moduli Datei des SSH Dienstes sshd ausgetauscht werden.

Die Hostkeys dienen der Authentifizierung des Servers und, zusammen mit der Moduli Datei, der Initialisierung der Verschlüsselung. Um die Verschlüsselung nicht angreifbarer zu halten als unbedingt notwendig sollten die Moduli und Keys für jeden Computer unterschiedlich sein.

1.) löschen der alten Hostkeys und der Moduli Datei von sshd

2.) Hostkey für sshd neu generieren

3.) Moduli Kandidaten für sshd generieren und wählen

# moduli kandidaten generieren

# sichere kandidaten wählen

Wenn jetzt, nach diesem Hostkey und Moduli Update eine Verbindung zu disem SSH-Server hergestellt werden soll wird die Fehlermedung „WARNING: POSSIBLE DNS SPOOFING DETECTED!“ und die Fehlermeldung „WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!“ angezeigt. Mit ssh-keygen kann der alte Hostkey aus der known_hosts Datei entfernt werden.:

Scan to Donate Bitcoin
Like this? Donate Bitcoin to at:
Bitcoin 19eq3AeAppCQ4YuHk5aQkYjAqay1kz7bUo
Donate

FTP Geschwindigkeit von der Linux Shell aus messen

Bourne-again shell

Manchmal erscheinen FTP Server unglaublich langsam. Um einen realistischen Geschwindigkeits Test durchzuführen habe ich mir den Folgenden Weg überlegt.

1.) Testdateien erstellen

2.) Verbindung zum FTP Server herstellen

3.) Die Testdateien zum Server übertragen

4.) Die Testdateien vom Server zurück übertragen

5.) Aufräumen

6.) Auswertung

Die Übertragung der Dateien erfolgte in meinem Beispiel mit mindestens (5655.2 kB/s) zum FTP Server und mit mindestens (9039.9 kB/s) vom Server zum Computer.

Wenn ihr einen Besseren Weg kennt die FTP Geschwindigkeit zu messen, meldet euch

Scan to Donate Bitcoin
Like this? Donate Bitcoin to at:
Bitcoin 19eq3AeAppCQ4YuHk5aQkYjAqay1kz7bUo
Donate

Wo finde ich die Dateien der MySQL Datenbank?

Um das Datenverzeichnis einer MySQL Datenbank zu finden kann in der my.cnf Daten nachgesehen werden.

Die Datei my.cnf ist häufig im Verzeichnis /etc oder /etc/mysql zu finden. In der Datei befindet sich eine Zeile „datadir = [Verzeichnis]“, dieses [Verzeichnis] ist der Ort an dem Auf der Festplatte des Servers die Daten der MySQL Datenbank liegen.

Die folgende Zeile gibt das Verzeichnis direkt aus.:

Erklärung der Zeile:

  •  find
    • sucht nach Dateien im Verzeichnis /etc mit dem Namen my.cnf
  • cat
    • gibt den Inhalt der gefundenen Datei aus
  • grep
    • gibt nur die Zeile die datadir enthält aus
  • cut
    • gibt alles nach dem Gleichheitszeichen aus
Scan to Donate Bitcoin
Like this? Donate Bitcoin to at:
Bitcoin 19eq3AeAppCQ4YuHk5aQkYjAqay1kz7bUo
Donate

Festplatten-Seriennummer unter Linux herausfinden

Um im PC-oder NAS Gehäuse immer gleich die richtige Festplatte zum Tauschen zu finden, muss im ID bzw. die Seriennummer der Festplatte herausgefunden werden.

Da leider nicht jedes NAS auf der Shell auch alle Befehle erlaubt Beziehungsweise alle Befehle anbietet, hier eine Liste mit 4 Methoden die Seriennummer von Festplatten unter Linux auszulesen.:

udebadm

Unter „–name=/dev/“ wird das Laufwerk angegeben, die Ausgabe ist nur die Seriennummer.

hdparm

Die Festplatte wurd als „-i /dev/sda“ angegeben, alternativ können hier mehrere Festplatten mit „-i /dev/sd[ab]“ angegeben werde. Die Ausgabe ist ausschließlich die Seriennummer.

smartctl

Auch bei smartctl wird mit „-i /dev/sda“ die fragliche Festplatte angegeben. Die Ausgabe ist ausschließlich die Seriennummer.

 grep, awk, sed

gibt alle Festplatten mit den zugehörigen Seriennummern und Bezeichnung aus.

Scan to Donate Bitcoin
Like this? Donate Bitcoin to at:
Bitcoin 19eq3AeAppCQ4YuHk5aQkYjAqay1kz7bUo
Donate

Mod-Rewrite Funktionstest

mod_rewrite will manchmal nicht das tun was ich vom mod_rewrite verlange, oder ich habe eine unverständliche .htaccess mot mod_rewrite Regeln die ich nicht nachvollziehen kann und welche einfach nicht das tun was die READ.ME Datei bahauptet.

Um in einer solchen Situation herauszufinden ob das mod_rewrite funktionsfähig ist muss ich mod_rewrite irgendwie testen.

Um mod_rwerite zu testen brauche ich 3 Dateien, eine .htaccess Datei und zwei ‚Webseite‘, und versuche nach dem Anlegen der Dateien diese aufzurufen.

Meine .htaccess Datei erhält den folgenden Inhalt:

In der ersten Zeile starte ich (hoffentlich) mod_rewrite, so das die beiden folgenden Zeilen für den Apache eine Bedeutung erhalten. In der Zweiten Zeile lege ich die Basis der Umschreibe Regel fest. Und in der dritten Zeile lege ich fest das alle Aufrufe welche die Datei testing.php laden sollen die Datei modrewrite.php erhalten.
Es ist mit dieser Regel nicht möglich den Inhalt von „testing.php“ zu erhalten, zumindest wenn die Regel befolgt wird.

Meine beiden PHP Dateien erhalten den folgenden Inhalt:
modrewrite.php

testing.php

Nach dem Anlegen der Dateien kann im Browser versucht werden die Internetseite http://domain.tld/testing.php auszurufen. Nur wenn im Browser der Text „mod_rewrite und PHP X.Y sind OK“ erscheint funktioniert mod_rewrite. Wenn etwas anderes angezeigt wird, „mod_rewrite ist nicht funktionsfaehig“, „echo „mod_rewrite ist nicht funktionsfaehig“;“ oder sogar „Fehler 500: Internal Server Error“, ist der Webserver nicht entsprechend eingerichtet und mod_rewrite kann leider nicht genutzt werden.

Scan to Donate Bitcoin
Like this? Donate Bitcoin to at:
Bitcoin 19eq3AeAppCQ4YuHk5aQkYjAqay1kz7bUo
Donate