BlogBlog ÜbersichtjailscriptportsoptFreeBSDLinksThermoskanne

pkg-message eines Ports nachträglich anzeigen

Bei der Installation von Ports werden manchmal zusätzliche Informationen zur Installation angezeigt. Diese pkg-message wird automatisch unter /var/db/pkg/<Port>/+DISPLAY gespeichert. Mit der -D Option von pkg_info(1) kann man sich diese Meldung zu einem späteren Zeitpunkt anzeigen lassen:

# pkg_info -D fluxcms-1.6.0_4

Möchte man nicht die vollständige Versionsnummer angeben, so kann man mit einer Wildcard arbeiten:

# pkg_info -D fluxcms-\*

pkg_info ist auf FreeBSD bereits im Basissystem vorhanden.

Related Entries:
Gespeicherte Optionen nach OptionsNG konvertieren
Ports-Subversion-Repository spiegeln
sysinstall-Ersatz für neuere FreeBSD-Versionen
Alte FreeBSD-Port Patchdateien aufsplitten
FreeBSD-Portbaum auf Fehler überprüfen
 Permalink

Bilder aus Thumbs.db extrahieren

Unter Windows wird automatisch für Bilder eine Vorschaudatei Thumbs.db erstellt. Mit dieser kann man grundsätzlich nichts unter FreeBSD anfangen. Werden unter Windows Bilder gelöscht, werden diese jedoch nicht aus der Thumbs.db entfernt. Möchte man nun die Bilder aus der Thumbs.db extrahieren, lässt sich das unter FreeBSD mit vinetto machen. vinetto findet man im FreeBSD Portsbaum unter security/vinetto.

# cd /usr/ports/security/vinetto && make install clean

Nachdem vinetto installiert ist, kann angegeben werden, in welches Verzeichnis die Bilder gespeichert werden sollen und wo sich die Thumbs.db Datei befindet:

# vinetto -o <Ausgabeverzeichnis> <Pfad zur Thumbs.db>

Falls man möchte, kann mit der -H Option auch eine HTML Datei angelegt werden, in der die Metadaten der Bilder angezeigt werden:

# vinetto -o output -H Thumbs.db 

Root Entry modify timestamp : Wed Mar 23 22:39:46 2005

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

0001 Wed Jan 12 22:00:36 2005 DSC00404.JPG
0002 Wed Jan 12 22:00:38 2005 DSC00408.JPG
0003 Wed Jan 12 20:53:38 2005 image005.jpg
0004 Wed Jan 12 20:53:44 2005 image006.jpg
0005 Wed Jan 12 20:53:44 2005 image007.jpg
0006 Wed Jan 12 20:53:44 2005 image008.jpg
0007 Wed Jan 12 20:53:44 2005 image009.jpg

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

7 Type 2 thumbnails extracted to output/

Im Ausgabeverzeichnis findet man nun eine index.html Datei, welche mit einem Browser geöffnet werden kann.

 Permalink

Antwortzeiten einer Webseite bestimmen

Mit httping lassen sich die Antwortzeiten und die Erreichbarkeit einer Webseite, ähnlich wie mit ping(8), bestimmen. httping findet man im FreeBSD Portsbaum unter net/httping:

# cd /usr/ports/net/httping && make install clean

Nun kann man mit httping eine Webseite testen. Die zu testende URL fügt man hinter der der -g Option an:

# httping -g http://www.chruetertee.ch
PING www.chruetertee.ch:80 (http://www.chruetertee.ch):
connected to www.chruetertee.ch:80, seq=0 time=484.46 ms
connected to www.chruetertee.ch:80, seq=1 time=473.40 ms
connected to www.chruetertee.ch:80, seq=2 time=467.74 ms
connected to www.chruetertee.ch:80, seq=3 time=472.84 ms
^C--- http://www.chruetertee.ch ping statistics ---
4 connects, 4 ok, 0.00% failed
round-trip min/avg/max = 467.7/474.6/484.5 ms

httping beendet man mit Ctrl + C. Sollen nur eine gewisse Anzahl Anfragen gesendet werden, verwendet man die -c Option. Soll der HTTP Statuscode zusätzlich angezeigt werden, fügt man die -s Option hinzu:

#  httping -g http://www.chruetertee.ch -s -c 1
PING www.chruetertee.ch:80 (http://www.chruetertee.ch):
connected to www.chruetertee.ch:80, seq=0 time=471.09 ms 200 OK
--- http://www.chruetertee.ch:80/ ping statistics ---
1 connects, 1 ok, 0.00% failed
round-trip min/avg/max = 471.1/471.1/471.1 ms

Auch kann man eine Webseite über HTTPS testen. Dazu muss die -l Option verwendet werden:

# httping -l -g https://www.chruetertee.ch
PING www.chruetertee.ch:443 (https://www.chruetertee.ch):
connected to www.chruetertee.ch:443, seq=0 time=569.78 ms
connected to www.chruetertee.ch:443, seq=1 time=546.61 ms
connected to www.chruetertee.ch:443, seq=2 time=546.76 ms
^C--- https://www.chruetertee.ch ping statistics ---
3 connects, 3 ok, 0.00% failed
round-trip min/avg/max = 546.6/554.4/569.8 ms

Alle Optionen von httping findet man in der Manpage httping(1).

 Permalink

Herausfinden welcher Prozess das Unmounten einer Partition verhindert

Versucht man eine Partition zu unmounten, dies schlägt jedoch fehl, so hat meistens noch ein Prozess eine Datei auf dieser Partition offen:

# umount /tmp
umount: unmount of /tmp failed: Device busy

Mit fstat lässt sich die Prozess-ID und der Programmname des Prozesses ermitteln, der noch eine Datei auf dieser Partition geöffnet hat:

# fstat -f /tmp
USER     CMD          PID   FD MOUNT      INUM MODE         SZ|DV R/W
beat     xpdf        1312   wd /tmp          2 drwxrwxrwt     512  r
beat     xpdf        1312    4 /tmp          7 -rwxr-xr-x  148794  r

Mit der Prozess-ID lässt sich danach das Kommando mit allen Parametern bestimmen, mit dem der Prozess gestartet wurde.

# ps -p 1312
  PID  TT  STAT      TIME COMMAND
  1312  p3  S+     0:00,43 xpdf talk.pdf

Beendet man diesen Prozess, kann die Partition mit umount(8) aus dem Verzeichnisbaum entfernt werden.

Auch lassen sich mit fstat alle Prozesse von einem bestimmten Benutzer ermitteln, welche zur Zeit noch eine Datei geöffnet haben.

# fstat -u <Benutzername>

Mehr Informationen zu fstat findet man in der Manpage fstat(1).

 Permalink

ipfw Logdatei auswerten

In einer ipfw Regel kann zusätzlich ein log-Schlüsselwort angegeben werden:

/sbin/ipfw -q add deny log ip from any to any

Nun werden alle Pakete, auf die diese Regel zutrifft, von syslog protokolliert. In /etc/syslog.conf findet man heraus, in welche Logdatei diese Meldungen geschrieben werden:

security.*                   /var/log/security

Mit Hilfe von ipfwcount kann nun diese Datei ausgewertet werden. ipfwcount findet man im FreeBSD Portbaum unter security/ipfwcount:

# cd /usr/ports/security/ipfwcount && make install clean

Möchte man nun herausfinden, welchen Destination-Port die meisten geblockten Pakete haben, kann man folgenden Befehl verwenden:

# ipfwcount -dink dport -t 5 /var/log/security
Destination port (denied, incoming, 5 of 21)
------------------------------------------------
http 124
netbios-ssn 47
1026 44
microsoft-ds 26
loc-srv 22

Mit der -d Option werden geloggte Pakete einer deny Regel und mit -i werden eingehende Pakete gezählt. Mit -n werden die Portnummern durch den Portnamen ersetzt und mit -k dport wird angegeben, dass nach den Destination-Ports sortiert werden soll und durch -t 5 werden nur die Top 5 Ports angezeigt.

Soll nun gleichzeitig angezeigt werden, welche Rechner am meisten auf diese Ports zugegriffen haben, so kann folgender Befehl verwendet werden:

# ipfwcount -dink dport,shost -t 2 /var/log/security
Destination port (denied, incoming, 2 of 21)
------------------------------------------------
http 124
Source host (2 of 11)
------------------------------------------------
xyz.dclient.hispeedy.hc 71
xyz.dsl.cest1wll.ten 21

netbios-ssn 47
Source host (2 of 8)
------------------------------------------------
217.150.xyz.xyz 18
xyz.aci.mehs.da.pj 8

Nun sieht man für die zwei meist geblockten Destination-Ports je die beiden Rechner, die am meisten versucht haben auf diese Ports zuzugreifen.

Möchte man automatisch mit den periodic daily Mails eine Auswertung der ipfw Logdatei erhalten, so kann man einen Symlink in /usr/local/etc/portiodic/security erstellen:

# cd /usr/local/etc/periodic/security/ && ln -s /usr/local/share/examples/ipfwcount/100.ipfwcount

Danach muss ipfwcount in der /etc/periodic.conf aktiviert werden:

echo 'daily_status_security_ipfwcount_enable="YES"' >> /etc/periodic.conf

Mehr Informationen zu ipfwcount findet man in der Manpage ipfwcount(1).

Related Entries:
Gespeicherte Optionen nach OptionsNG konvertieren
Ports-Subversion-Repository spiegeln
sysinstall-Ersatz für neuere FreeBSD-Versionen
Alte FreeBSD-Port Patchdateien aufsplitten
FreeBSD-Portbaum auf Fehler überprüfen
 Permalink

2 Jahre chruetertee.ch

Freudig und auch ein wenig stolz darf ich Euch mitteilen, dass chruetertee.ch nun schon seit 2 Jahren online ist. Die stets wachsenden Besucherzahlen und Anzahl Links, die auf diese Seite zeigen, bestätigen und motivieren mich in meiner Arbeit, so dass wohl noch viele Artikel zum Thema BSD folgen werden.

Ich danke Euch für Euer Interesse und Eure Kommentare.

Speziell möchte ich Nina für das Korrekturlesen der Artikel und die Geduld die sie aufbringt, wenn ich wieder ewig nach einem neuen Befehl der Woche Artikel suche, danken. Auch möchte ich Alain danken, der mich damals auf die Idee mit chruetertee.ch gebracht hat, ein Jahr lang diese Seite gehostet hat und mir regelmässig Support mit dem Flux CMS gibt.

Beat

Comments (4)  Permalink

Nur neue Einträge einer Logdatei anzeigen

Beobachtet man regelmässig einige Logdateien und möchte, dass nur die neuen Einträge, die seit dem letzten Mal betrachten dazugekommen sind, angezeigt werden, so kann man since verwenden. since findet man im FreeBSD Portsbaum unter misc/since:

# cd /usr/ports/misc/since && make install clean

Betrachtet man nun eine Datei das erste Mal mit since, wird die ganze Datei angezeigt. Beim nächstem Aufruf mit since werden dann nur noch die neuen Einträge angezeigt. Sind in der Zwischenzeit keine Einträge dazugekommen, wird nichts angezeigt:

# since /var/log/messages
...
Sep  1 11:22:36 daedalus kernel: info: [drm] Setting GART location based on new memory map
Sep  1 11:22:36 daedalus kernel: info: [drm] Loading R300 Microcode
Sep  1 11:22:36 daedalus kernel: info: [drm] writeback test succeeded in 1 usecs
Sep  1 11:22:37 daedalus dhclient: New IP Address (ath0): 192.168.1.38
Sep  1 11:22:37 daedalus dhclient: New Subnet Mask (ath0): 255.255.255.0
Sep  1 11:22:37 daedalus dhclient: New Broadcast Address (ath0): 255.255.255.255
Sep  1 11:22:37 daedalus dhclient: New Routers (ath0): 192.168.1.1
Sep  1 11:36:14 daedalus kernel: ipfw: limit 100 reached on entry 700
Sep  1 11:45:36 daedalus su: beat to root on /dev/ttyp1
# since /var/log/messages
# logger test
# since /var/log/messages
Sep  1 11:51:50 daedalus beat: test

Mehr Informationen zu since findet man in der Manpage since(1).

 Permalink
1-7/7