Skip to main content

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

----------------------------------------------------------------------------------------------

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