Breadcrump: Development > Snippets
Submenu for navigation on the (parent)page:
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
Processwire Session Login Logout
03. März 2020
wire/config.php
$config->sessionFingerprint...
Wert anpassen
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}{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}
hilfreiche git Kommanos
27. November 2019
# Letzten lokalen commit rückgängig machen: git reset --soft HEAD^
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
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
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
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
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
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
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
docker
30. Juni 2020
#filter dangling images docker images --filter "dangling=true" # remove dangling images docker rmi $(docker images -q --filter "dangling=true")
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
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
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
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
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 ########################################################
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 "{}" \;
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', ) );
Shopware 5 Zuständigkeit Ordner und Dateien
27. April 2021
- install
- uninstall
- Tabellen anlegen
- assign smarty
- ...Action()
- (eigene) Methoden
- redirects
- assign smarty
- Zugriff auf Events/andere Klassen
- Template registrieren
- erste Daten assign smarty
- DB-Queries
Basisklasse
.tpl
Controller
Subscriber
Services
- 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
Submenu for navigation on the (parent)page:
No wordpress needed, just made with the brilliant PROCESSWIRE CMS
Diese Webseite ist noch im Aufbau!