Zum Inhalt springen

Schlagwort: linux

Bestimmter Inhalt von Dateien in einem Verzeichnis suchen

Sucht man eine bestimmte Zeichenkette, um z.B. eine Konfiguration unter Linux anzupassen, weiß aber nicht in welcher Datei diese vorkommt, so kann man sich mit find, xargs und grep aushelfen.

Im folgenden Beispiel suchen wir alle Dateien im Verzeichnis /etc , in denen der String localhost vorkommt:

find /etc -type f | xargs grep localhost

Am Ergebnis erkennen wir, dass in der hosts Datei zwei mal localhost enthalten ist:

/etc/hosts:127.0.0.1 localhost
/etc/hosts:::1 ip6-localhost ip6-loopback

Natürlich lässt sich die Suche auch einschränken. Im folgenden Beispiel werden keine *.log Dateien durchsucht:

find /foo/bar -type f -not -name "*.log" | xargs grep localhost

Bestimmte Dateien finden und löschen

Wenn man zum Beispiel in aktuellen Verzeichnis alle Log Dateien von 2015 löschen will, kann man dies mit dem Befehl find machen.

Zuerst sucht man die gewünschten Dateien, die man löschen möchte:

find ./ -name "*2015*.log"

Hat man die richtigen Dateien gefunden, dann kann man dem Befehl „-exec rm {} \;“ anhängen, damit diese gelöscht werden.

find ./ -name "*2015*.log" -exec rm {} \;

Alle Dateien einzeln packen

Möchte man unter Linux alle Dateien im aktuellen Verzeichnis einzeln packen, so kann man dies mit folgendem Befehl machen:

for f in *; do tar cfvz $f.tgz $f; done

Falls man nur Log-Dateien packen will, kann man das so tun:

for f in *.log; do tar cfvz $f.tgz $f; done

Will man die Dateien nach dem Packen löschen, erweitert man einfache den Befehl:

for f in *.log; do tar cfvz $f.tgz $f; rm $f; done

Dateien finden, die größer als …

Dateien finden, die eine bestimmte Größe überschritten haben.

Jeder kennt es: Eine Partiton / Festplatte läuft voll. Mit folgendem Befehl kann man schnell Dateien finden, die größer als 10MB sind, um zu schauen was man löschen könnte:

ls -lahS $(find / -type f -size +10000k)

Wireshark

Netzwerkanalyse mit Wireshark.

Mit dem Programm wireshark kann man über eine grafische Oberfläche den Netzwerk-Verkehr eines Netzwerk-Interface überwachen und analysieren. Über die Filter kann man sich nur die wichtige Pakete anzeigen lassen. Das Kommandozeilenprogramm ohne Oberfläche nennt sich tshark.

Man kann sich mit Hilfe von wireshark und tshark über das Netzwerk einen Server analysieren, indem man sich per ssh auf den Server verbindet, die Pakete mit tshark direkt zu wireshark schicken lässt.

In diesem Beispiel wird der HTTP und DNS Verkehr zu wireshark zur Analyse gesendet:

ssh user@meinserver "tshark -i eth0 -F pcap -f 'not tcp port 22 && (tcp port 80 || tcp port 53 || udp port 53)' -w -" | wireshark -k -i -

https://www.wireshark.org/