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