PeeJayz.de|Snippets

Breadcrump: Development > Snippets

Submenu for navigation on the (parent)page:
  • Netzwerkkarte Traffic anzeigen
  • Processwire Session Login Logout
  • mysql login
  • Slider (einfache Übergänge)
  • hilfreiche git Kommanos
  • netplan
  • Terminal .psd in jpg/png/pdf
  • fail2ban jails
  • Terminal .mp4 in .mp3
  • git pull
  • Terminal lokal git
  • Terminal mit ffmpeg Videos umwandeln
  • Ordner nach Grössen auflisten
  • docker
  • Docker Compose Test
  • lxc commands
  • mit grep Text in Ordnern finden
  • JTL WAWI Datenbank löschen
  • atime, ctime, mtime und stat
  • Liste aller manuell installierter Pakete
  • Benutzer und Gruppen automatisch setzen (z.B. bei Apache)
  • Shopware forward() und redirect()
  • Shopware 5 Zuständigkeit Ordner und Dateien
  • Distro Version unter Linux anzeigen
  • Netzwerkkarte Traffic anzeigen

    21. April 2020

    am einfachsten mit nload

    sudo apt install nload
    # aufrufen einfach, aktualisiert standardmässig alle 2 Skunden
    nload
    # oder Aktualisierungszeit in ms vorgeben, z.B.
    nload -t 500
    

    top

    Processwire Session Login Logout

    03. März 2020

    wire/config.php

    $config->sessionFingerprint...

    Wert anpassen

    top

    mysql login

    14. Januar 2020

    mysql -h'127.0.0.1' -u'USER' -p TABLENAME

    top

    Slider (einfache Übergänge)

    13. Dezember 2019

    {php
    
    	$slider_img = array(
    		"https://via.placeholder.com/1950",
    		"https://via.placeholder.com/3000",
    		"https://via.placeholder.com/1920",
    		"https://via.placeholder.com/1800",
    		"https://via.placeholder.com/1320",
    		"https://via.placeholder.com/3210"
    	);
    
    php}
    
    
    #text/css
    
      .slider-wrapper{
        position: relative;
        width: 100%;
        height: 66vh;
        display: flex;
        align-content: center;
        justify-content: center;
        align-items: center;
      }
      .slider-item{
        position: absolute;
        display: none;
        width: 100%;
        height: 100%;
        background-position: center center;
        background-repeat: no-repeat;
        background-size: cover;
      }
      .active{
        display: block;
      }
    
      @media all and (min-device-width: 1024px){
    
        .slider-wrapper{
          height: 80vh;
        }
    
      }
    
    
    {script} src="https://code.jquery.com/jquery-latest.min.js">{/script}
    
    
    {php $count = 0; foreach($slider_img as $img){ $active = ($count == 0) ? ' active' : ''; echo " "; $count++; } php}
    {script} $(document).ready(function(){ /* slider */ var active = 0; var sliderItem = $('.slider-item').length; var slideInt = 2000; // fade-Effekte-Zeit var slideWindowInt = 6000; // Gesamtlaufzeit window.setInterval(function(){ if(sliderItem>active){ if((sliderItem-1)>active){ $('.slider-item').eq(active).fadeOut(slideInt); active++; } else{ $('.slider-item').eq(active).fadeOut(slideInt); active = 0; } $('.slider-item').eq(active).fadeIn(slideInt); } }, slideWindowInt); /* end of slider */ }); {/script}

    top

    hilfreiche git Kommanos

    27. November 2019

    # Letzten lokalen commit rückgängig machen:
    git reset --soft HEAD^
    

    top

    netplan

    04. November 2019

    # This file describes the network interfaces available on your system
    # For more information, see netplan(5).
    network:
      version: 2
      renderer: networkd
      ethernets:
        enp0s3:
          dhcp4: no
          addresses: [192.168.178.2/24]
          gateway4: 192.168.178.1
          nameservers:
            addresses: [8.8.8.8,8.8.4.4]
    
    #network:
    #  version: 2
    #  renderer: networkd
    #  ethernets:
    #    enp0s3:
    #      dhcp4: true
    

    top

    Terminal .psd in jpg/png/pdf

    15. Oktober 2019

    • imagemagick muss installiert sein
    • Grundsätzlich: convert example.psd example.jpg (oder png/pdf...)
    • Option -flatten, damit nicht zwei Bilder daraus generiert werden
    convert -flatten bla.psd bla.jpg

    als Schleife für alle in einem Ordner:

    for i in *.psd ; do convert -flatten "$i" "${i%.*}.jpg" ; done
    

    oder
    for i in *.psd ; do convert -flatten "$i" "${i%.*}.png" ; done
    

    oder
    for i in *.psd ; do convert -flatten "$i" "${i%.*}.pdf" ; done
    

    mit resize und Qualitätsoption
    for i in *.psd ; do convert -flatten -resize 3000x3000 -quality 60% "$i" "${i%.*}.jpg" ; done
    

    top

    fail2ban jails

    21. November 2019

    # zeige alle aktiven jails als root
    iptables -L -n
    
    # gibt gleichzeitig eine Auflistung aller einzelnen Services
    fail2ban-wuftpd
    fail2ban-pure-ftpd
    fail2ban-proftpd
    fail2ban-vsftpd
    fail2ban-apache-overflows
    fail2ban-apache-noscript
    fail2ban-apache-multiport
    fail2ban-apache
    fail2ban-ssh-ddos
    fail2ban-ssh
    
    # diese können als root so abgefragt werden
    fail2ban-client status proftpd
    

    top

    Terminal .mp4 in .mp3

    07. November 2019

    • wandelt alle mp4 in einem Ordner in mp3 um
    • Skript vor der Nutzung noch ausführbar machen
    #!/bin/bash
    
    # für jede mp4-Datei in dem aktuellen Ordner ausführen
    for i in ./*.mp4
    
    do 
        # ".mp4" aus dem Dateinamen entfernen 
        # und in der Variable filename speichern
        filename=`echo $i | sed 's/\.mp4$//g'`     
    
        # .mp4-Datei in eine .mp3-Datei mit 128kbit umwandeln
        avconv -i "$filename.mp4" -f mp3 -ab 128000 -vn "$filename.mp3"
    done
    

    top

    git pull

    10. Januar 2020

    mkdir meinOrdner
    cd meinOrdner
    git init
    git config user.email "test@myexample.com"
    git config user.name "myName"
    git remote add origin git@theHostNameUrl:RepositoryName/Repository.git
    git pull origin master
    

    top

    Terminal lokal git

    15. Oktober 2019

    mkdir test
    cd test
    touch test.txt
    
    git init
    git config user.email "you@example.com"
    git config user.name "Your Name"
    git remote add origin https://github.com/dateifabrik/test.git
    
    git add *
    git commit
    git push -u origin master
    

    top

    Terminal mit ffmpeg Videos umwandeln

    07. November 2019

    .mov in .mp4

    ffmpeg -i input.mov -vcodec h264 -acodec aac -strict -2 output.mp4
    // auf 1280x780 shrinken:
    ffmpeg -i input.mov -vf scale=1280:720 -vcodec h264 -acodec aac -strict -2 output.mp4
    

    .mov in avi

    • f kann auch ein anderer Buchstabe sein, zum Beispiel S
    • {f%%.MOV} entfernt das .MOV im Dateinamen
    for f in *.MOV; do ffmpeg -i $f -qscale 1 ${f%%.MOV}.mp4; done	
    // Standard:
    ffmpeg -i input.mov -vcodec copy -acodec copy output.avi
    

    top

    Ordner nach Grössen auflisten

    28. Juni 2020

    sudo du -sh /pfad/zum/ordner/* | sort -hr

    top

    docker

    30. Juni 2020

    #filter dangling images
    docker images --filter "dangling=true"
    
    # remove dangling images
    docker rmi $(docker images -q --filter "dangling=true")
    

    top

    Docker Compose Test

    05. Juli 2020

    # neuer Ordner
    mkdir compose-test
    cd compose-test
    
    # Server-Ordner
    mkdir apache
    nano apache/Dockerfile
    
    # Inhalt Dockerfile
    FROM php:7.0-apache
    
    RUN apt-get update && apt-get upgrade -y; \
        apt-get install -y nano
    RUN docker-php-ext-install pdo_mysql mysqli
    
    # Ordner für mysql
    mkdir database
    
    # Ordner für Webinhalte
    mkdir html
    echo 'Hello' > html/index.php
    echo 'Willkommen' > html/index.html
    
    # docker-compose-Datei
    nano docker-compose.yml
    version: "3"
    services:
        mariadb:
            container_name: db
            image: mariadb:10.3
            ports:
            - "3306:3306"
            volumes:
            - ./database/:/var/lib/mysql/
            environment:
            - MYSQL_ROOT_PASSWORD=root
            - MYSQL_DATABASE=compose-test
            - MYSQL_USER=testuser
            - MYSQL_PASSWORD=geheim
            networks:
            - compose-test
    
        web:
            container_name: html
            build: apache/
            # command: bash -c "echo 'Test bestanden.' > /var/www/html/index.html; apache2-foreground"
            volumes:
            - ./html/:/var/www/html/
            networks:
            - compose-test
    
    networks:
        compose-test:
            driver: bridge
    

    top

    lxc commands

    04. September 2020

    Container auflisten

    lxc list
    +------------------+---------+------+------+------------+----------------+
    |       NAME       | STATUS  | IPV4 | IPV6 |    TYP     | SCHNAPPSCHÜSSE |
    +------------------+---------+------+------+------------+----------------+
    | first-container2 | STOPPED |      |      | PERSISTENT | 0              |
    +------------------+---------+------+------+------------+----------------+
    

    Container starten

    lxc start first-container2
    lxc list
    +------------------+---------+---------------------+-----------------------------------------------+------------+----------------+
    |       NAME       | STATUS  |        IPV4         |                     IPV6                      |    TYP     | SCHNAPPSCHÜSSE |
    +------------------+---------+---------------------+-----------------------------------------------+------------+----------------+
    | first-container2 | RUNNING | 10.26.231.40 (eth0) | fd42:f226:f2f4:debd:216:3eff:fec1:5df7 (eth0) | PERSISTENT | 0              |
    +------------------+---------+---------------------+-----------------------------------------------+------------+----------------+
    

    Container stoppen

    lxc stop first-container2

    Befehl im laufenden Container ausführen

    lxc exec first-container2 bash
    root@first-container2:~#

    Liste aller verfügbaren remote images (Doppelpunkt am Ende ist wichtig)

    lxc image list images:
    
    Auszug Anfang...
    
    +--------------------------------------+---------------+--------+----------------------------------------------+---------+----------+-------------------------------+
    |                                      | fd0e7df3d989  | Ja     | Devuan beowulf i386 (20200824_11:50)         | i686    | 95.93MB  | Aug 24, 2020 at 12:00am (UTC) |
    +--------------------------------------+---------------+--------+----------------------------------------------+---------+----------+-------------------------------+
    |                                      | fda7823e99ed  | Ja     | Kali current arm64 (20200823_17:14)          | aarch64 | 89.40MB  | Aug 23, 2020 at 12:00am (UTC) |
    +--------------------------------------+---------------+--------+----------------------------------------------+---------+----------+-------------------------------+
    |                                      | fdb878c6a9cc  | Ja     | Plamo 6.x amd64 (20200824_01:45)             | x86_64  | 86.04MB  | Aug 24, 2020 at 12:00am (UTC) |
    +--------------------------------------+---------------+--------+----------------------------------------------+---------+----------+-------------------------------+
    |                                      | fe80b3711e3b  | Ja     | Debian sid armhf (20200823_05:24)            | armv7l  | 89.56MB  | Aug 23, 2020 at 12:00am (UTC) |
    +--------------------------------------+---------------+--------+----------------------------------------------+---------+----------+-------------------------------+
    |                                      | fefa7f730375  | Ja     | Alpine 3.11 i386 (20200823_13:00)            | i686    | 2.42MB   | Aug 23, 2020 at 12:00am (UTC) |
    +--------------------------------------+---------------+--------+----------------------------------------------+---------+----------+-------------------------------+
    |                                      | ffab63033766  | Ja     | Centos 8 arm64 (20200824_07:08)              | aarch64 | 136.09MB | Aug 24, 2020 at 12:00am (UTC) |
    +--------------------------------------+---------------+--------+----------------------------------------------+---------+----------+-------------------------------+
    
    Auszug Ende...

    Remote image nach Namen suchen

    lxc image list images: 'alpine'
    
    Auszug Anfang...
    
    +------------------------------+---------------+--------+--------------------------------------+---------+--------+-------------------------------+
    | alpine/edge/armhf (1 more)   | 22b488cb8ba2  | Ja     | Alpine edge armhf (20200825_13:00)   | armv7l  | 3.67MB | Aug 25, 2020 at 12:00am (UTC) |
    +------------------------------+---------------+--------+--------------------------------------+---------+--------+-------------------------------+
    | alpine/edge/i386 (1 more)    | c851a4789547  | Ja     | Alpine edge i386 (20200825_13:00)    | i686    | 4.13MB | Aug 25, 2020 at 12:00am (UTC) |
    +------------------------------+---------------+--------+--------------------------------------+---------+--------+-------------------------------+
    | alpine/edge/ppc64el (1 more) | 9f9a7c17039a  | Ja     | Alpine edge ppc64el (20200825_13:00) | ppc64le | 3.99MB | Aug 25, 2020 at 12:00am (UTC) |
    +------------------------------+---------------+--------+--------------------------------------+---------+--------+-------------------------------+
    | alpine/edge/s390x (1 more)   | fa30815d8431  | Ja     | Alpine edge s390x (20200825_13:00)   | s390x   | 3.66MB | Aug 25, 2020 at 12:00am (UTC) |
    +------------------------------+---------------+--------+--------------------------------------+---------+--------+-------------------------------+
    
    Auszug Ende...

    Image download und Namen vergeben

    lxc launch imageserver:imagename instancename
    
    # zum Beispiel Ubuntu
    lxc launch ubuntu:20.04 ubuntuone

    top

    mit grep Text in Ordnern finden

    15. Oktober 2020

    grep -rlni "zusuchendertext" /Ordner
    
    • -r bedeutet rekursiv
    • -n gibt die Zeile an
    • -i nicht case-sensitive

    top

    JTL WAWI Datenbank löschen

    11. November 2020

    vorher immer ein Backup von der aktuell vorhandenen anlegen (man weiß ja nie...)

    sqlcmd -U sa -P Passwort -S SERVERNAME\JTLWAWI -Q "DROP DATABASE eazybusiness"

    danach JTL starten und wieder einrichten

    top

    atime, ctime, mtime und stat

    25. November 2020

    allgemein (atime)

    ls -la

    Datei oder Ordner neuer als angegebenes Datum / Uhrzeit

    # Dateien im aktuellen Verzeichnis modified
    find . -type f -newermt '2017-09-24' -ls
    find . -type f -newermt '2017-09-24 16:50:40' -ls
    
    # Ordner im aktuellen Verzeichnis modified
    find . -type d -newermt '2017-09-24' -ls
    find . -type d -newermt '2017-09-24 16:50:40' -ls
    
    # Dateien im aktuellen Verzeichnis changed
    find . -type f -newerct '2017-09-24' -ls
    find . -type f -newerct '2017-09-24 16:50:40' -ls
    
    # Ordner im aktuellen Verzeichnis changed
    find . -type d -newerct '2017-09-24' -ls
    find . -type d -newerct '2017-09-24 16:50:40' -ls
    

    Datei oder Ordner älter als angegebene Tage modified

    find . -type f -mtime +10 -ls
    find . -type d -mtime +10 -ls
    

    Datei oder Ordner älter als angegebene Tage changed

    find . -type f -ctime +10 -ls
    find . -type d -ctime +10 -ls
    

    alle Angaben mit stat

    stat DATEINAME
    
    #### Beispielausgabe ####
      Datei: 'DATEINAME'
      Größe: 12        	Blöcke: 8          EA Block: 4096   Normale Datei
    Gerät: 811h/2065d	Inode: 114042468   Verknüpfungen: 1
    Zugriff: (0664/-rw-rw-r--)  Uid: ( 1000/  USER)   Gid: ( 1000/  USER)
    Zugriff    : 2020-11-25 16:52:04.848368704 +0100
    Modifiziert: 2020-11-25 16:50:33.686392666 +0100
    Geändert   : 2020-11-25 16:51:40.696905218 +0100
     Geburt    : -
    

    für explizite Ausgabe (siehe man stat)

    #stat -c OPTION(en) DATEINAME
    
    stat -c '%y' DATEINAME #modification
    stat -c '%z' DATEINAME #changed
    
    ################### Auszug man stat #######################
    %w     time of file birth, human-readable; - if unknown
    %x     time of last access, human-readable
    %y     time of last data modification, human-readable
    %z     time of last status change, human-readable
    ########################################################
    

    top

    Liste aller manuell installierter Pakete

    26. Dezember 2020

    apt-mark showmanual

    top

    Benutzer und Gruppen automatisch setzen (z.B. bei Apache)

    19. Februar 2021

    Automatische Zuordnung des Users oder der Gruppe funktioniert nur innerhalb des Ordners, auf den der Befehl ausgeführt wird.
    NICHT BEI HINEINKOPIEREN ODER RSYNC ODER ÄHNLICHEM

    chmod u+s /var/www/html
    chmod g+s /var/www/html
    

    Wenn nachträglich die Zuordnung innerhalb der Order erfolgen soll, dann vorher mit

    chown -R USER:GROUP /var/www/html
    

    entsprechend anpassen

    find /var/www/html/ -type d -exec chmod u+s "{}" \;
    find /var/www/html/ -type d -exec chmod g+s "{}" \;
    

    top

    Shopware forward() und redirect()

    23. April 2021

    forward() und redirect() sind Funktionen mit denen Weiterleitungen in Plugins realisiert werden können. Dabei wird forward() für Weiterleitungen im selben Controller verwendet und redirect() für Weiterleitungen zu anderen Controllern.

    forward()

    Mit dem nachfolgenden Code wird innerhalb des Checkout Controllers zur Aktion "shippingPayment" weitergeleitet.

    $indexController->forward('shippingPayment');
    

    redirect()

    Für komplexere Weiterleitungen wird die redirect-Funktion verwendet. Dabei können noch weitere Werte mitgegeben werden. Im folgenden Code werden die Einstellungen im Array definiert. "controller" steht für den Controller, zu dem weitergeleitet werden soll und "action" für die Aktion im entsprechenden Controller. Mit "sTarget" und "sTargetAction" wird angegeben auf welchen Controller und welche Aktion des Controllers nach der korrekten Ausführung der aufgerufenen Seite angezeigt werden soll. In unserem Fall wird auf "/checkout/confirm" weitergeleitet.

    $indexController->redirect(
    	array(
    		'controller' => 'checkout',
    		'action' => 'shippingPayment',
    		'sTarget' => 'checkout',
    		'sTargetAction' => 'confirm',
    	)
    );
    

    top

    Shopware 5 Zuständigkeit Ordner und Dateien

    27. April 2021

      Basisklasse

    • install
    • uninstall
    • Tabellen anlegen
    • .tpl

    • assign smarty
    • Controller

    • ...Action()
    • (eigene) Methoden
    • redirects
    • assign smarty
    • Zugriff auf Events/andere Klassen
    • Subscriber

    • Template registrieren
    • erste Daten assign smarty
    • Services

    • DB-Queries

    top

    Distro Version unter Linux anzeigen

    25. Januar 2022

    cat /etc/*-release
    

    top

    No wordpress needed, just made with the brilliant PROCESSWIRE CMS

    Diese Webseite ist noch im Aufbau!