running-cool: never change a running system
Perl-Module installieren
- Aktualisiert: Freitag, 25. März 2022 10:08
- Geschrieben von Mazin Shanyoor
Bei dem CPAN handelt es sich um ein weltweites Netzwerk, das sämtliche "offizielle" Module, Programme, Tools, Dokumentationen sowie den Perl-Interpreter kostenlos zum Download anbietet.
Einzelne Spalten einer Tabelle mit phpMyAdmin expotieren
- Aktualisiert: Sonntag, 27. März 2022 16:37
- Geschrieben von Mazin Shanyoor
Kleiner, aber hilfreicher Tipp: Mit der SQL-Abfrage (siehe Listing 1) über den phpMyAdmin SQL-Editor können alle Daten aus einer oder mehreren Spalten ausgewählt werden.
HowTo: MySQL-/ MariaDB Datenbanken exportieren - Backup erstellen mit mysqldump
- Aktualisiert: Freitag, 25. März 2022 10:09
- Geschrieben von Mazin Shanyoor
Das Programm mysqldump erstellt eine Backup-Datei für eine MySQL-Datenbank in Form von SQL-Anweisungen. Listing 1 bis 9 zeigen die komplexen Möglichkeiten für die Erzeugung einer Backup-Datei mittels mysqldump.
HowTo: Datenbanken aus Dump-Dateien in MySQL / MariaDB einspielen
- Aktualisiert: Sonntag, 03. Dezember 2023 08:35
- Geschrieben von Mazin Shanyoor
Das Einspielen von MySQL-/ MariaDB-Datenbankdumps kann durchaus eine problematische Angelegenheit werden, besonders dann, wenn es sich um verschiedene Versionsnummern der Datenbanken handelt. Mein wichtigester Tipp hier lautet: Nerven behalten!
Der Prozess über die Shell ist dem über phpMyAdmin immer vorzuziehen, da er gerade bei größeren Datenmengen deutlich stabiler verläuft.
Hier erst mal Standard-Listings zum Einspielen von MySQL-/ MariaDB-Dumps:
MySQL und MariaDB: User anlegen und Rechte zuweisen
- Aktualisiert: Mittwoch, 14. Dezember 2022 12:41
- Geschrieben von Mazin Shanyoor
Eine neue Datenbank anzulegen und einem bestehenden oder neuen User hierfür Rechte zu zuweisen, gehört zu den Standardaufgaben in der Datenbankadministration. Das folgenden Listings (1 - 7) zeigten einen typischen Ablauf einer solchen Aufgabe an:
ERROR 1449 (HY000): The user specified as a definer ('mysql.infoschema'@'localhost') does not exist
- Aktualisiert: Mittwoch, 11. Mai 2022 11:53
- Geschrieben von Mazin Shanyoor
Bei der Migration von einer alten auf eine neue MySQL-Version kann es beim Einspielen zu Problemen mit dem mysql.infoschema User kommen.
Dieses führt zu massiven Error-Meldungen Fehlermeldung über der Shell.
MySQL-Fehler 2013 (hy000). Was sind die Ursachen? Was kann ich machen?
- Aktualisiert: Freitag, 14. Januar 2022 21:34
- Geschrieben von Mazin Shanyoor
Der MySQL-Fehler 2013 (hy000) tritt bei der Einspielung von Datenbank-Backups über mysqldump auf, Aber auch bei Einspielung direkt über ein MySQL-Befehl (sie Listing 1) oder phpMyAdmin kann es zu diesem Fehler kommen (siehe Listing 2).
MySQL-Version ermitteln
- Aktualisiert: Donnerstag, 13. Januar 2022 23:28
- Geschrieben von Mazin Shanyoor
Der einfachste Weg zur Ermittlung der installierten MySQL-Version geht über die Shell.
MySQL- und MariaDB-Server neu starten unter Debian / Ubuntu
- Aktualisiert: Sonntag, 08. Januar 2023 09:58
- Geschrieben von Mazin Shanyoor
Der Restart des MySQL-oder MariaDB-Servers kann nötig werden, wenn es Anpassungen an der MySQL-/ MariaDC-Konfigurationsdatei oder sich die Datenbank aufgehängt hat. Um den MySQL-/ MariaDB-Server unter Linux neu zu starten, können folgenden Befehl ausführt werden:
Performance Optimierung der MySQL und MariaDB
- Aktualisiert: Freitag, 06. Januar 2023 19:29
- Geschrieben von Mazin Shanyoor
Die Optimierung der MySQL und der MariaDB ist die effektivste Methode zur Steigerung der Performance von CMS und Shop-Systemen. Die mögliche Steigerung der Geschwindigkeit beim Ausspielen der Daten aus der MySQL bzw. MariaDB ist ein wesentlicher SEO-Vorteil und ist ein wichtiger Performance-Parameter bei der optimalen Ausnutzung von Hard- und Software-Konfigurationen.
Das Comprehensive Perl Archive Network
- Aktualisiert: Freitag, 25. März 2022 10:07
- Geschrieben von Mazin Shanyoor
CPAN (engl. Comprehensive Perl Archive Network) ist ein weltweit gespiegeltes Online-Repository für Perl-Module, -Anwendungen und Dokumentationen, das am 25. Oktober 1995 in Anlehnung an die TeX-Library CTAN ins Leben gerufen wurde und sich schnell zum Perl-de-facto-Standard entwickelt hat. Es bietet die Möglichkeit einer komfortablen Installation und Verwaltung von Perl-Modulen. Heute umfasst das CPAN circa 230 Server auf fünf Kontinenten und enthält über 17.000 Distributionen von über 7.200 Autoren, was einem Volumen von annähernd 4,9 GB entspricht.
Libraries for WWW Access in Perl (LWP)
- Aktualisiert: Freitag, 25. März 2022 10:11
- Geschrieben von Mazin Shanyoor
Unter dem Synonym LWP (Libraries for WWW Access in Perl, libwww-perl) versteckt sich eine mächtige Bibliothek von Perl-Modulen, die verschiedene Schnittstellen, Funktionen und Objekte zum Ansprechen von Web-Diensten und Internet-Protokollen zur Verfügung stellt. LWP besitzt insgesamt acht separate Modulgruppen: File, Font, HTML, HTTP, LWP, MIME, URI und WWW.
Die Stärke der LWP-Bibliothek liegt dabei in der Request-/ Response-Interaktion zwischen Client und Server. Typischerweise wird LWP bei der Programmierung von Web-Bots, Crawlern, Spidern, Browsern, oder allgemeiner ausgedrückt beim automatisierten Webseitenaufruf eingesetzt.
HTML::TreeBuilder
- Aktualisiert: Freitag, 25. März 2022 10:12
- Geschrieben von Mazin Shanyoor
HTML::TreeBuilder ist eine Sub-Klasse zu HTML::Parser (und HTML::Element), die es ermöglicht, ein HTML-Dokument in eine aus HTML::Element-Objekten und Strings bestehende Baum-Struktur zu zerlegen, die sodann mit verschiedensten Methoden bequem durchsucht, ggf. verändert und z.B. wieder als HTML-Dokument ausgegeben werden kann.
Das Perl-Modul HTML::TreeBuilder erzeugt aus einem Webdokument einen Baum von HTML-Elementen.
HTML::Parser
- Aktualisiert: Freitag, 25. März 2022 10:08
- Geschrieben von Mazin Shanyoor
Das Parsen von HTML-Seiten mit Regulären Ausdrücken besitzt seine Tücken und ist für Programme mit einem generischen, umfassenden Ansatz nicht zu empfehlen. Das Hauptproblem bei den Regulären Ausdrücken ist, dass sich komplexe Strukturen nur sehr schwer und umständlich abbilden lassen. Diese Ausdrücke sind zudem nicht sehr robust gegenüber kleinsten Veränderungen in der Zieldatei. Auf den Punkt gebracht kann man sagen, dass HTML-Code in Webseiten nicht regulär genug ist, um mit Regulären Ausdrücken flexible und effektive Perl-Scripte zu entwicklen.
Ein wesentlich eleganterer und deutlich robusterer Ansatz zum parsen von HTML-Seiten lässt sich mit dem CPAN-Modul HTML::Parser realisieren.
Perl: Extraktion von Werte und Zeichen aus einer HTML-Datei die zwischen HTML-Tags stehen
- Aktualisiert: Dienstag, 28. Februar 2023 13:01
- Geschrieben von Mazin Shanyoor
In Perl gibt es mehrere Möglichkeiten, Werte zwischen einem öffnenden und schließenden HTML-Tag aus einer HTML-Datei zu extrahieren. Eine Möglichkeit ist die Verwendung von regulären Ausdrücken und der HTML::Parser-Module.
Listenvergleich: CSV-Listen mit teilweise gleichen IDs vergleichen
- Aktualisiert: Freitag, 03. März 2023 13:38
- Geschrieben von Mazin Shanyoor
Um zwei unterschiedliche CSV-Listen mit teilweise gleichen IDs in Perl zu vergleichen und eine dritte Liste mit übereinstimmenden IDs zu erstellen, kann folgenden Code verwendet werden:
HowTo: Suchen und Ersetzen in Dateien
- Aktualisiert: Freitag, 25. März 2022 10:07
- Geschrieben von Mazin Shanyoor
Das Suchen und Ersetzen von Strings in einer oder mehreren Dateien kann mit der Hilfe von Perl direkt auf der Shell erfolgen.
CGI (Common Gateway Interface)
- Aktualisiert: Sonntag, 26. März 2023 16:46
- Geschrieben von Mazin Shanyoor
Das Common Gateway Interface regelt den Aufruf und die Parameterversorgung von externen Programmen, den sogenannten CGI-Skripts. Die Parameterübergabe erfolgt hierbei in Abhängigkeit von der beim Aufruf des CGI-Programms gewählten HTTP-Methode. Der HTTP-Server und das aufgerufene CGI-Programm kommunizieren über eine Reihe von im CGI-Standard festgelegten Umgebungsvariablen.
PHP 301 Redirect: die permanente Weiterleitung via PHP
- Aktualisiert: Freitag, 25. März 2022 10:09
- Geschrieben von Mazin Shanyoor
301-Weiterleitungen sind aus SEO-Sicht wichtige Befehle in der Verwaltung von Portalen. Eine 301-Weiterleitung kann über die Apache-Konfiguration, der .htaccess-Datei oder eines PHP-Scriptes elegant erfolgen.
MySQL-/ MariaDB-Datenbanksicherung mit PHP via mysqldump und scp
- Aktualisiert: Sonntag, 18. Dezember 2022 15:24
- Geschrieben von Mazin Shanyoor
Einfach und elegant lässt sich die Sicherung von eine oder mehrere Datenbanken über PHP in Kombination mit mysqldump erreichen.
Mit PHP eine Datei über SCP auf einen anderen Server übertragen
- Aktualisiert: Donnerstag, 05. Januar 2023 07:51
- Geschrieben von Mazin Shanyoor
Für die Übertragung einer Datei mit einem PHP-Script über das Secure Copy Protocol (SCP) gibt es mit der ssh2_scp_send()-Funktion einen eleganten Prozess dieses zu realisieren. Die ssh2_scp_send()-Funktion gehört zu der SSH2-Erweiterung, die es ermöglicht, Dateien via SCP zu übertragen.
Das PHP-Framework Symfony: Eine allgemeine Bewertung
- Aktualisiert: Freitag, 24. März 2023 10:11
- Geschrieben von Mazin Shanyoor
Symfony ist ein Open-Source PHP-Framework, das für die Entwicklung von Webanwendungen und APIs verwendet wird.
Linux / Ubuntu : Das SSH-Root-Login sperren
- Aktualisiert: Samstag, 25. März 2023 19:06
- Geschrieben von Mazin Shanyoor
Brute-Force-Attacken auf das SSH-Login betrifft alle Linux-Server, die über das Internet zugänglich sind. Neben der Änderung des SSH-Ports 22 auf eine andere Port-Nummer und die Implementierung von Fail2Ban ist die Sperrung des Root-Logins ein weiterer Baustein das SSH-Login abzusichern.
Fail2Ban: SSH-Login gegen Brute-Force-Angriffe absichern
- Aktualisiert: Dienstag, 26. Juli 2022 07:26
- Geschrieben von Mazin Shanyoor
Fail2Ban ist ein in Python unter der GNU General Public License Version 2 geschriebenes Analyse- und Absicherungsprogramm. Verschiedene Serverdienste können durch dieses Analyse- und Reaktionstool vor unbefugten Zugriff zusätzlich abgesichert werden.
UFW-Firewall: Setup und Konfiguration
- Aktualisiert: Donnerstag, 12. Mai 2022 19:59
- Geschrieben von Mazin Shanyoor
Die UFW-Firewalll ist ein benutzerfreundliches Konfigurationswerkzeug für die Verwaltung von iptables-Firewall Regeln. Es ermöglicht mittels einfacher Konfigurations- und Setup-Befehle eine Reihe von Sicherheitsregeln (Datenfilter) festzulegen, die den ein- und ausgehenden Netzwerkverkehr überwachen und gegebenenfalls blockieren.
Linux-Server: Den SSH-Port ändern
- Aktualisiert: Mittwoch, 11. Mai 2022 06:33
- Geschrieben von Mazin Shanyoor
Die meisten automatisierten Brute-Force-Attacken auf das SSH-Login finden über den Port 22 statt. Eine Änderung des SSH-Port erhöht nicht unbedingt die Sicherheit, allerdings erschwert es "standardisierte" Brute-Force-Attacken auf das SSH-Login. Die Änderung des SSH-Ports ist dabei denkbar einfach und erfordert nur eine kleine Anpassung in der Konfigurationsdatei des SSH Daemons (sshd_config).
Hack-Analyse: Dateiinformationen (Attribute) mit dem find-Befehl untersuchen
- Aktualisiert: Freitag, 22. April 2022 21:58
- Geschrieben von Mazin Shanyoor
Was tun bei Verdacht auf einen Hackerangriff?
In Zeiten von professionellen Hackerangriffen ist das Prüfen der Serverintegrität und den Applikationen essential geworden. Die Kombination verschiedener Shell-Befehle (find, grep, sort) mit ihren Parametern über die Kommandozeile hilft hier, sich einen schnellen systematischen Überblick zu verschaffen.
HowTo: zip, gzip und bzip2
- Aktualisiert: Freitag, 25. März 2022 10:06
- Geschrieben von Mazin Shanyoor
Der zip-Befehl
Das in der Windows-Welt hauptsächlich verwendete komprimierte zip-Archiv wird auf der Shell mit dem Befehl zip, gefolgt von den einzupackenden Dateien oder Verzeichnissen angelegt.
HowTo: Der tar-Befehl in der Linux-Shell
- Aktualisiert: Freitag, 25. März 2022 10:05
- Geschrieben von Mazin Shanyoor
Im Gegensatz zum zip-Befehl wird mit dem tar-Befehl ledigliich ein unkomprimiertes tar-Archiv angelegt. Allerdings kann anschließend das erzeugte tar-Archiv mit einem anderen Programm komprimiert werden. In der Regel kommen hierbei die Programme gunzip oder bunzip2 zum Einsatz.
Allerdings kann ein komprimiertes Archiv auch in einem Arbeitsschritt durch das Verwenden der Optionen -z (für gunzip) oder -j (bunzip) erzeugt werden.
HowTo: php.ini-Datei auf einen Linux-Server finden
- Aktualisiert: Samstag, 16. April 2022 10:29
- Geschrieben von Mazin Shanyoor
Der schnellste Weg die php.ini-Dateien auf einen Linux-Server zu finden ist mittels eines find-Befehls über die Shell (siehe Listing 1). Allerdings werden mit diesem Shell-Befehl alle php.ini-Dateien auf dem Server gefunden. Welche davon aktiv ist, findet man nicht heraus.
GnuPG: Verschlüsselung von Dateien unter Ubuntu
- Aktualisiert: Freitag, 25. März 2022 10:02
- Geschrieben von Mazin Shanyoor
Durch folgende Befehl wird die Datei NAME_der_DATEI.txt nach doppelter Eingabe eines Passwortes verschlüsselt.
Linux / Ubuntu: Festplattenplatz ermitteln
- Aktualisiert: Donnerstag, 05. Januar 2023 12:11
- Geschrieben von Mazin Shanyoor
Der Befehl df (disk filesystem) liefert in Kombination mit verschiedenen Parameter wertvolle Informationen über den Speicherzustand der Festplatte.
Die Crontab-Syntax
- Aktualisiert: Donnerstag, 05. Januar 2023 20:44
- Geschrieben von Mazin Shanyoor
Um ein Script mithilfe von crontab regelmäßig aufzurufen, muss zunächst die crontab-Datei bearbeitet werden. Der crontab ist ein Systemdienst bei Linux-Servern, der dafür sorgt, dass bestimmte Befehle, Scripte oder Programme zu festgelegten Zeiten ausgeführt werden. Der Aufruf der Konfigurationsdatei erfolgt in einer Shell über den Befehl crontab -e. Dieses Kommando öffnet eine leere Datei, in der Einträge für den Cron-Daemon hinzufügt werden.
dep-Pakete mit "apt install" installieren
- Aktualisiert: Freitag, 24. März 2023 09:09
- Geschrieben von Mazin Shanyoor
Der Befehl "apt install" wird normalerweise auf Linux-basierte Betriebssysteme (Ubuntu, Debian etc.) verwendet, um ein Paket aus einer Paketquelle oder einer heruntergeladenen Paketdatei zu installieren.
Howto: Aktualisierung von PHP 7.x auf PHP 8.x unter Ubuntu/ Debian
- Aktualisiert: Freitag, 03. März 2023 13:10
- Geschrieben von Mazin Shanyoor
Das Installieren einer aktuellen PHP-Version auf einem Linux-Server erfordert immer ein paar Handgriffe, aber insgesamt ist es ein unproblematischer Prozess, der gut dokumentiert und erprobt ist. Ein Upgrade von PHP 7.x auf PHP 8.x bedingt nicht nur ein Upgrade des PHP-Kerns, sondern auch aller Erweiterungen (PHP-Pakete).
a2enmod und a2dismod: Aktivieren und Deaktivieren von Apache2-Modulen
- Aktualisiert: Freitag, 04. November 2022 21:35
- Geschrieben von Mazin Shanyoor
Das Aktivieren und Deaktivieren von Apache-Modulen unter Linux (Ubuntu, Debian etc.) erfolgt am elegantesten mit den Befehlen a2enmod und a2dismod über die Root-Shell.
Apache-Version ermitteln
- Aktualisiert: Montag, 27. September 2021 18:59
- Geschrieben von Mazin Shanyoor
Welche Apache-Version ist auf ihrem Server installiert? Folgender einfacher Shell-Befehl muss man/ frau im Terminal-Fenster eingeben:
Wie prüfe ich die OpenSSL-Version auf Debian-/ Ubuntu-Servern?
- Aktualisiert: Montag, 04. Oktober 2021 13:39
- Geschrieben von Mazin Shanyoor
Folgende Befehle stehen unter Linux (Debian/ Ubuntu) zur Verfügung:
PFX-Datei: Extration von cer-, key- und crt-Files
- Aktualisiert: Mittwoch, 18. Mai 2022 14:22
- Geschrieben von Mazin Shanyoor
Die PFX-Datei steht für ein Zertifikat im PKCS#12-Format. Im Prinzip kann man sich dieses Datei-Format als ein (passwortgeschütztes) Archiv vorstellen. In diesem Archiv wird das Zertifikat, das Intermediäre Zertifikat der Zertifizierungsstelle und der private Schlüssel zu dem Zertifikat gespeichert. Die Extraktion der Dateien aus diesen SSL-Zertifikat-Container erfolgt dabei in mehreren Stufen.
Der typische Second-Order-Wert im Online Handel
- Aktualisiert: Montag, 13. Februar 2023 16:15
- Geschrieben von Mazin Shanyoor
Es gibt keine festgelegte Regel dafür, wie hoch der Second-Order-Wert im Online-Verkauf sein sollte. Es hängt von vielen Faktoren ab, einschließlich der Art des Produkts oder der Dienstleistung, der Zielgruppe, dem Marketingbudget und dem Konkurrenzumfeld.
Wie wird der Customer Lifetime Value (CLV) berechnet?
- Aktualisiert: Sonntag, 26. März 2023 16:34
- Geschrieben von Mazin Shanyoor
Customer Lifetime Value (CLV) ist eine Marketing-Metrik, die den geschätzten Gesamtwert eines Kunden für ein Unternehmen über die gesamte Dauer seiner Beziehung zu diesem Unternehmen hinweg misst.