Linux – Hex Editor für die Kommandozeile

Mit dem Programm xxd können wir ganz einfach aus Dateien oder Eingaben der Standarteingabe in einen HEX Dump erzeugen.

Um einen HEX Dump z.B. von einem String zu erzeugen kann geht man wie folgt vor:

für eine Ausgabe als Plain Dump wir der Parameter -p ergänzt.

Will man nun einen HEX Dump in ASCII zurück konvertieren geht dies natürlich auch mit dem Parameter -r.

Vim als Hex Editor für die Kommandozeile

Um vim als Hex Editor zu verwenden müssen wir diesen in den Hex Modus umstellen. Dies erfolgt mit:

„Linux – Hex Editor für die Kommandozeile“ weiterlesen

Firefox – Screenshot einer kompletten Webseite

Um einen Screenshot einer kompletten Webseite anzufertigen kann man wie schon im Artikel „wkhtmltopdf – Website als PDF oder Bild speichern“ beschrieben vorgehen.

Will man dies aber einfach mal ganz fix ohne weitere Software erreichen, kann man auch mit der Entwickler-Toolbar vom Firefox Browser einen kompletten Screenshot einer Webseite erstellen.

Firefox – Screenshot erstellen

Um einen Screenshot zu erstellen, geben wir die URL der betreffenden Webseite in die Adressleiste ein. Ist die Seite vollständig geladen öffnen wir die Entwickler-Toolbar (Extras -> Web-Entwickler -> Werkzeuge ein-/ausblenden). Nun sehen wir im unteren Bereich die Konsole der Entwicklertools.

Alternativ können wir diese auch mit Shift-F2 aufrufen.

Dort geben geben wir nun den Befehl screenshot — fullpage ein.

„Firefox – Screenshot einer kompletten Webseite“ weiterlesen

Python – pip Pythonpakete aus Datei installieren

Um mit einem Python Projekt umzuziehen ist es nötig auf dem neuen Zielsystem oder im neuen Virtual Environment die gleichen Python Pakete bzw. Vorraussetzungen zu schaffen.

Installierte Python Pakete anzeigen

Um einen Überblick über die aktuell installierten Python Pakete zu erhalten können wir mit den Befehlt pip freeze eine Ausgabe der installierten Paket erhalten.

In diesem Beispiel sind folgende Pakete installiert.

Die Ausgabe der Paketliste leiten wir nun in die Datei requirements.txt um.

Requirements mit pip aus Datei installieren

Danach können wir mit dem Befehlt pip install -r Dateiname die Pakete in der neuen Umgebung installieren. Mit dem Parameter -r weisen wir pip an die Abhängkeiten aus der Datei zu lesen.

Als Ausgabe erhalten wir den Installationsdialog und eine abschließende Zusammenfassung. „Python – pip Pythonpakete aus Datei installieren“ weiterlesen

Browser – HSTS Cache löschen

HSTS (HTTP Strict Transport Security) ist ein zusätzlicher Schutz für HTTPS-Verbindungen. Dabei wird dem Browser ein HTTP Response Header Strict-Transport-Security vom Server gesendet. Dies veranlasst den Browser zukünftig bzw. für die im Header definierte Zeit, nur noch verschlüsselte Verbindungen zu dieser Domain aufzubauen. Weitere Informationen zu diesem Thema gibt es z.B. auf der Seite von Wikipedia.

Ist diese Header einmal an den Browser gesendet ist der Zugriff ohne Verschlüsselung auf diese URL nicht mehr ohne Weiteres mit diesem Browser möglich. Soll die Kommunikation wieder unverschlüssel erfolgen müssen zuerst die Einstellungen am Webserver geändert werden und das Senden der Strict-Transport-Security Header verhindert werden. Anschliessen muss im Browser der HSTS-Cache entfernt werden.

Ob der Strict-Transport-Security Header noch gesendet wird kann man z.B. mit cURL prüfen.

In diesem Beispiel ist der Header noch aktiv.

In diesem Artikel wird beschrieben wie man den HSTS Cache in den verschiedenen Browsern löscht.

Firefox – HSTS Cache löschen

HSTS Cache Firefox
HSTS Cache Firefox

Die HSTS Informationen der Domains liegen beim Browser Firefox im Profil-Ordner.

Dazu geben wir im Firefox in der Adressleiste about:support ein. Anschliessend kann der Profilordner durch ein Klick auf Profilordner anzeigen geöffnet werden. Dort befindet sich eine Textdatei mit dem Namen SiteSecurityServiceState.txt.

Nun muss sichergestellt werden, das Firefox vollständig beendet wurde. Danach können wir die Datei mit einen Texteditor bearbeiten und die entsprechende Zeile löschen. „Browser – HSTS Cache löschen“ weiterlesen

MySQL – mysqldump Datenbanken sichern und einspielen

Auch Datenbanken gehören ins Backup. Um ein Backup einer Datenbanken anzulegen empfiehlt sich mysqldump. Es gibt auch die Möglichkeit ein Backup mit phpmyadmin oder ähnlichen Frontends anzufertigen. Allerdings sind diese oft nicht installiert und bei umfangreichen Datenbanken stößt man schnell an Einschränkungen wie z.B PHP-Timeouts.

Mysql/MariaDB bringt bei der Installation schon die nötigen Backup-Tools mit. Daher müssen diese nicht extra installiert werden.

mysqldump Backup und Restore

Mysqldump ist ein Tool für die Kommandozeile. Der Aufrufe gestaltet sich immer nach dem gleichen Schema.

Um die erzeugten Dumpfiles wieder in den Datenbankserver einzuspielen übergeben wir den Inhalt des Dumpfiles dem MySQL-Server.

Um das Dumpfile beim Erzeugen des Dumps gleichzeitig zu komprimieren kann dies mit gzip erfolgen.

Beim Restoren des Dumps muss dann der Befehl cat durch zcat erstetzt werden, da zcat in der Lage ist gezippte Dateien anzuzeigen. „MySQL – mysqldump Datenbanken sichern und einspielen“ weiterlesen

Mailserver – E-Mail Migration mit Imapsync

imapsync LogoBei der Migration eines ganzen Mailserver oder einzelner Postfächer steht man oft vor dem Problem des sauberen Transfers der vorhandenen E-Mails von Server zu Server.

Die einfachste Methode ist es, wenn der Zugriff auf das Dateisystem beider Server gegeben ist. Ist dies der Fall kann man die E-Mails auf Dateisystem-Ebene synchronisieren. Eine weitere Vorraussetzung ist es, dass auf beiden Server die E-Mails im selben Format vorliegen. Sollte dies nicht der Falls sein muss eine andere Lösung gefunden werden.

Postfächer mit Imapsync synchronisieren

Imapsync ist ein Tool für die Kommandozeile. Es erlaubt den rekrusiven Transfer von E-Mails zwischen zwei Imap-Postfächern. Es ist für nahezu alle Plattformen verfügbar und für Linux ist es meist in der Distribution enthalten.

Die Installation von Imapsync unter Centos funktioniert bei aktiviertem EPEL-Repository wie folgt:

Danach ist das Tool startklar.

Die Benutzung von Imapsync ist dem copy-Befehl sehr ähnlich, nur dass einige Parameter für den Login in das Postfach angegeben werden müssen.

Es gibt noch eine große Anzahl an Parameter für das Debuging und Verhalten der Synchronisation. So kann man diese z.B. mit –dry vorab testen, dabei werden noch keine E-Mails synchronisiert.

Eine komplette Liste der Parameter gibt es in der Manpage von Imapsync.

Damit seht einer unkomplizierten E-Mail Migration mit Imapsync nun nichts mehr im Wege.

Imapsync Bash-Script erstellen

Sollte die Migration mehr als ein Postfach umfassen lohnt es sich dazu ein Script zu erstellen. Wie dies aussehen könnte zeigt dieses Beispiel. Dabei wird von gleichen Imap-Zugangsdaten auf beiden Servern ausgegangen. „Mailserver – E-Mail Migration mit Imapsync“ weiterlesen

Linux – mit dem Passwortgenerator pwgen sichere Passwörter erstellen

pwgen - sichere Passwörter
pwgen – sichere Passwörter

pwgen ist ein Passwortgenerator für die Kommandozeile.

Wie der Name schon vermuten lässt, generiert das Programm pwgen zufällige Passwörter. Weiterhin können wir das Erstellen der Passwörter mit einigen Parametern beeinflussen.

-0  keine Zahlen im Passwort
-A  ohne große Buchstaben
-v  keine Vokale im Passwort
-B  keine mehrdeutigen Zeichen z.B. 1 und l
-N <Nummer> erzeuge Anzahl N Passwörter
-s  erzeuge sehr sichere Passwörter

Eine ausführliche Info gibt es wenn man sich die Hilfe pwgen -h oder manpages man pwgen anzeigen lässt. „Linux – mit dem Passwortgenerator pwgen sichere Passwörter erstellen“ weiterlesen

Python – Flask Cache URL mit Query String als cache_key

Python Micro-Framework Flask
Python Micro-Framework Flask

Wer bei dem Python Microframework Flask die Cache-Funktion für URLs verwendet wird bemerkt haben, dass die Request-Argumente bzw. der Query String per default nicht beachtet wird und so bei verschiedenen Request-Argumenten immer die selbe Seite aus dem Cache ausgeliefert
wird.

Da dies oft nicht gewollt ist, muss eine Möglichkeit gefunden werden den Query String in den Cache_Key einzubeziehen.

Die Cache-Funktion von Flask bietet die Möglichkeit den key_prefix selbst zu definieren. Dass dies auch mit einer anderen Funktion möglich ist, wurde sehr schlau gedacht.

Wir erstellen uns dazu eine eigene Funktion make_cache_key. Dieser übergeben wir die Parameter von dem Seitenaufruf und bekommen einen gehashten Wert aus unseren request.path und den request.args.

Nun passen wir den key_prefix der Cache-Funktion an. „Python – Flask Cache URL mit Query String als cache_key“ weiterlesen

Plesk – phpMyAdmin upload size erhöhen

phpMyAdmin_logoDas Standard-Upload Limit von phpMyAdmin ist bei Plesk auf 2MB konfiguriert. Dies reicht in den seltensten Fällen aus um z.B einen MySQL-Dump einer WordPress-Installation einzuspielen.

Um das Upload-Limit für phpMyAdmin zu erhöhen passen wir folgende Konfigurationsdatei php.ini an.

phpmyadmin – Upload Limit mit Plesk erhöhen

Dort passen wir die Werte für die beiden Variable an. Wir wählen hier 50MB, das sollte für die meisten Anforderungen reichen.

Anschliessend starten wir Plesk neu um die Änderungen zu übernehmen.

Die Änderungen sollte nun funktionieren und ein Upload mit 50MB ist kein Problem mehr. „Plesk – phpMyAdmin upload size erhöhen“ weiterlesen

Plesk – BUSY: Die Update-Operation wurde durch einen anderen Update-Prozess gesperrt

Startet man den autoinstaller von Plesk in der Konsole um ein Plesk-Update oder neue Feature von Plesk zu installieren kann es sein, dass man von folgender Meldung überrascht wird:

BUSY: Die Update-Operation wurde durch einen anderen Update-Prozess gesperrt

Die Meldung bedeutet, dass ein weiterer Prozess bereits die Update-Funktion von Plesk gestartet hat. Plesk erzeugt darauf hin einen Lock-File unter /tmp/psa-installer.lock . Dadurch wird verhindert, dass mehrere Instanzen des Installers laufen und es zu Inkonsistenten kommt. „Plesk – BUSY: Die Update-Operation wurde durch einen anderen Update-Prozess gesperrt“ weiterlesen