Hacks und Commands

**Images mit dd:** Komprimiertes Image Vom Laufwerk erstellen: dd if=/dev/sda | gzip --best >kodi-Image.gz 
 Zurückschreiben: gunzip -c kodi-Image.gz | dd of=/dev/sda 
 **Dateiliste erstellen und die Liste mit einem Befehl abarbeiten: ** *#/bin/bash find /media/usbhd/Multimedia/Video/recordings/  -name "*.mpeg">liste for f in $(cat liste) ; do  rm $f done 
 ***Encodieren nach Liste*** 
 *#/bin/bash find /Media/Video/recordings/ -mtime 90 -name "*.mpeg">mpeg_liste for mpeg in $(cat mpeg_liste) ; do  mencoder -ovc x264 -oac mp3lame -ofps 25 -o $mpeg.mp4 $mpeg done 
 -------------------------------------------------------------------- 
 Find and do something...serial 
 find -iname '*.pdf' -exec cp {} /home/willi/pdf/ \; 
 ----------------------------------------------------------------------- **Audio extraieren aus *.mp4** ffmpeg -i "The Eagles - Hotel California.mp4" -vn -acodec flac file.flac 
 **JPG aus *mp4 extraieren** ffmpeg -i "vlc-record.mp4" -an -f image2 "output_%05d.jpg" 
 **mp4 aus jpg + Text einfügen 
 Insert Text in Video: ffmpeg -i output_Montag2.mp4 -vf  drawtext="fontfile=/usr/share/fonts/truetype/ttf-dejavu/DejaVuSerif.ttf:text='12.04.21':fontsize=20:fontcolor=blue:x=1800:y=10" with_text3.mp4 
 ffmpeg -framerate 25 -start_number 4 -i Photo/Montag/image-%04d.jpg -c:v libx264 -profile:v high -crf 20 -pix_fmt yuv420p /home/willi/Montag_16-20output.mp4 
 ffmpeg -framerate 25  -i install/MO/image%04d.jpg -c:v libx264 -profile:v high -crf 20 -pix_fmt yuv420p /home/willi/Montag_19output.mp4 
 ------------ **Video kodieren x265** ffmpeg -i "Der Auftragskiller - Zimmer 164.mp4" -c:v libx265 -preset medium -x265-params crf=25 -c:a aac -strict experimental -b:a 128k output.mp4 
 ------------ **HD-Streams bearbeiten** 1. ffmpeg  -i 'vlc-record-.ts' -vcodec copy -acodec copy  'Wallander.ts'      -korrigiert Fehler im Stream 
 2. ffmpeg -ss 00:05:55 -i 'Wallander.ts' -vcodec copy -acodec copy -bsf:a aac_adtstoasc -f mp4 'Wallander.mp4'     - ss: schneidet die ersten 34 Sekunden ab     - t : Schnitt an Streamposition 1:35:44 (gemessen ab -ss)     - bsf:  behebt Fehler in der Audiospur ------------ 
 Permissions von Files numerisch anzeigen:    
 stat -c "%A %a %N" * 
 ----------------- 
 **Leerzeichen in Dateinamen entfernen** *#/bin/bash  for i in *\ * do mv "$i" "${i// /_}" done* oder: *#/bin/bash  for i in /media/usbhd/Multimedia/Video/recordings/Deutsches_Europa_Kino/*.mp4 do mv "$i" "${i// /_}"  done 
 ------------ 
 **Installation nach Paketliste** #/bin/bash for pkg in $(cat installed_packages.list) ; do          apt-get -y install $pkg     done 
 #Paketliste erstellt mit: dpkg -l|grep ii|awk '{print$2}'>installed_packages.list 
 ------------ **Verschlüsseln/entschlüsseln mit ssl** 
 * *#!/bin/bash* *# make sure we get a file name* if [ $# -lt 1 ]; then   echo "Usage: $0 filename"   exit 1 fi openssl enc -e -aes256 -in "$1" -out "$1".enc* 
 
 *#!/bin/bash* *# make sure we get 2 files* if [ $# -lt 2 ]; then   echo "Usage: $0 encrypted_file decrypted_file"   exit 1 fi openssl enc -d -aes256 -in "$1" -out "$2" 
 ------------ **Streaming mit vlc** ** **#/bin/bash cvlc .mplayer/Sender.conf --extraintf http --sout udp:172.16.1.164& exit 
 ------------ 
 #### Phpmyadmin für weiteren Server einrichten:  **Datei: /etc/phpmyadmin/config.inc.php**: 
 <?php  $cfg['blowfish_secret']='multiServerExample70518'; //any string of your choice (max. 46 characters) $i = 0;    $i++; // server 1 : $cfg['Servers'][$i]['auth_type'] = 'cookie'; // needed for pma 2.x $cfg['Servers'][$i]['verbose']   = 'no1';  $cfg['Servers'][$i]['host']      = 'localhost'; $cfg['Servers'][$i]['extension'] = 'mysqli'; // more options for #1 ...   $i++; // server 2 : $cfg['Servers'][$i]['auth_type'] = 'cookie'; $cfg['Servers'][$i]['verbose']   = 'no2';  $cfg['Servers'][$i]['host']      = 'banapi';//or ip:'10.9.8.1' // this server must allow remote clients, e.g., host 10.9.8.% // not only in mysql.host but also in the startup configuration $cfg['Servers'][$i]['extension'] = 'mysqli'; // more options for #2 ...    // end of server sections $cfg['ServerDefault'] = 0; // to choose the server on startup   // further general options ... ?> 
 ------------ #### Teamviewer auf 64bit 
 Vielleicht zur Erklärung: Das 64-Bit-Paket verwendet zum installieren das Paket Debiania32-libs, welches seit Wheezy nicht mehr vorhanden ist. Du musst also die 32Bit Version installieren und vorher Multiarch freischalten mit: 
 dpkg --add-architecture i386 
 Danach ein 
 apt-get update 
 Jetzt das Paket herunterladen: 
 wget http://download.teamviewer.com/download/teamviewer_i386.deb 
 Das Paket installieren: 
 dpkg -i teamviewer_i386.deb 
 Und fehlende Abhängigkeiten installieren: 
 apt-get install -f 
 Steht auch sonst alles hier: -> http://www.teamviewer.com/en/help/363-How-do-I-install-TeamViewer-on-my-Linux-distribution.aspx 
 ------------ 
 #### Samba meckert uber Cups -das gar nicht installiert ist... 
 #####prevent logsentries about cups####      load printers = no      printing = bsd      printcap name = /dev/null      disable spoolss = yes 
 ------------ #### NATNAT: Dem Kernel das Weiterleiten beibringen Wir möchten also dem Kernel das folgende mitteilen: Bei Paketen aus dem lokalen Netz, dessen IP-Adresse  nicht mit seiner übereinstimmt, soll er die Absender-Adresse auf sich selbst ändern. Dazu machen wir noch  die Annahme, dass das erste Netzwerk-Interface des Linux-Routers "eth0" mit dem lokalen Netz verbunden ist  und die Internet-Verbindung am zweiten Interface "eth1" verfügbar ist.  Der Befehl zur Freigabe der Internet-Verbindung lautet dann: 
    *Anbinden eines LAN an das Internet*    $> iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE    iptables-Tabellen speichern 
 **Beispiel um iptables-Tabellen zu speichern**: 
 sudo iptables-save > /etc/iptables_01.save  
 **Beispiel um iptables-Tabellen wieder zu laden. Vorhandenen Regeln werden dabei gelöscht bzw. überschrieben.** 
 sudo iptables-restore < /etc/iptables_01.save  
 **So werden bereits vorhandene Regeln nicht gelöscht:** 
 sudo iptables-restore -n < /etc/iptables_01.save sudo iptables-restore --noflush < /etc/iptables_01.save  
 So können natürlich auch mehrere Tabellen gespeichert und je nach Bedarf wieder geladen werden. **iptables-Tabellen löschen** 
 sudo iptables --flush  #### [Linux Nat Toutorial](http://www.karlrupp.net/de/computer/nat_tutorial "Linux Nat Toutorial") ------------ 
 #### Mit sed alle Zeilen löschen, die "pattern" enthalten sed '/pattern to match/d' ./infile To directly modify the file (and create a backup): sed -i.bak '/pattern to match/d' ./infile 
 #/bin/bash mount -t cifs //fritz.box/fritz.nas /home/willi/smb -o username=Maria,password=oma 
 **SSH Passwordless Login**  ssh-keygen -t rsa  ssh-copy-id -i ~/.ssh/id_rsa.pub user@remote-system 
 ** Dateiberechtigungen sichern** 
 To back up permissions in the current directory and its subdirectories recursively: 
 getfacl -R  >permissions.facl To restore permissions: setfacl --restore=permissions.facl 
 **Filesystemcheck:** 
 umount /media/veracrypt1 fsck /dev/mapper/veracrypt1 
 **Splitten von MP3:** mp3splt: Automatisch: mp3splt -c query file.mp3 Manuell mp3splt -s -p min=2 file.mp3 
 **Mount Winfreigabe:** mount -t cifs //fritz.box/fritz.nas /home/willi/smb -o username=Maria,password=oma 
 wget komplette Seite 
 wget -r -l 0 -p -k -D alan-g.me.uk -L -np     http://www.alan-g.me.uk/l2p/ 
 
 PiHole Docker Unbound – Error starting userland proxy: listen tcp4 0.0.0.0:53: bind: address already in use 
 
 
 systemctl disable systemd-resolved.service
systemctl stop systemd-resolved.service
rm /etc/resolv.conf
echo 1.1.1.1 > /etc/resolv.conf
 
 
 ---------------------------------------------------------------------------------------------- 
 Symbolic links 
 ln -s {source-filename} {symbolic-filename} 
 --------------------------------------------------------------------------------------------------------------------------------------------- 
 Performance VPS-Server 
 apt update
apt upgrade -y
apt install sysbench fio bpytop iperf3

lscpu
lspci

ping ipv4.ipv64.net
ping ipv6.ipv64.net

iperf3 -c speedtest.myloc.de -p 5200 -P 10 -4
iperf3 -c speedtest.myloc.de -p 5200 -P 10 -4 -R

sysbench cpu run
sysbench memory run

dd if=/dev/zero of=/root/test.iso bs=128k count=10000

## Schreib- / Lesetests
fio --name=write-test --size=1G --filename=/tmp/fio-testfile --bs=128k --rw=write --direct=1 --numjobs=1 --time_based --runtime=30 --group_reporting
fio --name=read-test --size=1G --filename=/tmp/fio-testfile --bs=128k --rw=read --direct=1 --numjobs=1 --time_based --runtime=30 --group_reporting
fio --name=realistic-test --filename=/tmp/fio-testfile --size=2G --bs=64k --rw=randrw --rwmixread=70 --direct=1 --iodepth=16 --numjobs=4 --time_based --runtime=60 --group_reporting