Nützliche Einzeiler

Aus SiWiki
Wechseln zu: Navigation, Suche

ssh forwarding von IPv4 Host zu IPv6 Host (www.example.org) über ein Intermediate Dualstack System

create the tunnel via intermediate system on your local IPv4 host:

ssh -4 user@intermediate-system -L 2222:[2606:2800:220:1:248:1893:25c8:1946]:22

connect to IPv6 host www.example.org (2606:2800:220:1:248:1893:25c8:1946) on port 22:

ssh user@localhost:2222

netcat filetransfer

  1. local: nc -l -p 77 -e "tee gaga" -v
  2. remote: cat file.tar.gz | netcat 192.168.1.113 77

netcat proxy

nc -l -p 1234 | nc www.server.com 80

Ersetze "foo" mit "bar" NUR in Zeilen die "baz" enthalten

sed '/baz/s/foo/bar/g'

Ersetze "foo" mit "bar" AUSSER in Zeilen die "baz" enthalten

sed '/baz/!s/foo/bar/g'

Ausgabe der Zeilen 45-50 einer Datei

sed -n '45,50p' filename

Directory sharing via http

ipv4: python -m SimpleHTTPServer 80
ipv6: ???

csv to vcard converter

cat addr_book.csv | awk -F"," '{ print "BEGIN:VCARD\nN:" $3 ";" $2 ";" $1 "\nFN:" $3 "\nEMAIL;TYPE=INTERNET:" $5 "\nEND:VCARD"}' > addr_book.vcf

grep access_log und print host info

grep "GET /<URL-PATH>" /var/log/apache2/access_log | awk '{system("host " "\""$1"\"")}' | uniq

Netzwerk Statistiken aus /proc/net/netstat dargestellt

awk '(f==0) { i=1; while ( i<=NF) {n[i] = $i; i++ }; f=1; next} (f==1){ i=2; while ( i<=NF){ printf "%s = %d\n", n[i], $i; i++}; f=0}' /proc/net/netstat

finde alle symlinks die auf DATEI zeigen

find / -type l -print 2>/dev/null | while read symlink; do echo -n "$symlink"; targ=$(readlink -f "$symlink"); echo "-> $targ"; done | grep "DATEI"

finde alle symlinks die auf DIRECTORY zeigen

find / -type l -xtype d -print 2>/dev/null | while read symlink; do echo -n "$symlink"; targ=$(readlink -f "$symlink"); echo "-> $targ"; done | grep "DIRECTORY"

8 Byte Passwort generieren

openssl rand -base64 6

Perl Oneliner um ein Unix-Socket File (Typ: s) zu erstellen

perl -MIO::Socket::UNIX -e 'IO::Socket::UNIX->new(Type => SOCK_STREAM(),Local => "/tmp/einsocket");'

Aliases aus sendmail /etc/aliases extrahieren und mit Domainname in eine Postgresql Datenbank als source,destination Paar einfügen

Der Oneliner gibt lediglich die 'psql' Statements aus, es wird nichts geschrieben oder verändert. Sind in der Aliases-Datei bereits Einträge in der Form 'user@domain.tld' vorhanden, werden diese so übernommen. Einträgen ohne '@domain.tld' wird jeweils ein '@example.ch' angehängt.

cat /etc/aliases | grep -Pv "^#.*" | grep -v "|" | awk -F: '{ split($2,arr,","); for (i in arr) print $1,arr[i]; }' | sed 's/\\//' | perl -pe 's/(^(?!\S+\@)\S+)\s+((?!.+\@).+)/$1\@example.ch\t $2\@example.ch/' | sort | awk '{print "psql -h 127.0.0.1 -U dbuser -d database -w -X --set ON_ERROR_STOP=on -t --no-align -t --no-align --field-separator \"|\" --single-transaction -c \"insert into schema.forward (source, destination) values (\047"$1"\047, \047"$2"\047);\"" }'

ssh mit Keys statt Passwort zu entferntem Host

Schauen was schon an Keys besteht

ls -la .ssh/

Schlüsselpaar erstellen (RSA mit 4096 Bit)

ssh-keygen -t rsa -b 4096

Public-Key zum entfernten Host transferieren

cat .ssh/id_rsa.pub | ssh <user>@<host> 'cat >> .ssh/authorized_keys'

MAC Adresse des ethx Interface ermitteln

ip address show dev ethx | awk '$1=="link/ether" {print $2}'

Serielle Console mit Python (aka minicom)

python -m serial.tools.miniterm -e -p /dev/ttyXXXX -b 115200