BlogBlog ÜbersichtjailscriptportsoptFreeBSDLinksThermoskanne

Disk-Aktivität beobachten

Mit Hilfe von iostat kann die Aktivität der Systemdisks beobachtet werden. Im folgenden Beispiel werden die Werte alle 5 Sekunden aktualisiert:

#  iostat 5
       tty              ad4              da0              cd0             cpu
 tin  tout  KB/t   tps  MB/s   KB/t tps  MB/s   KB/t tps  MB/s  us ni sy in id
 6599  1377  24.46   2  0.04   3.16   0  0.00   3.00   0  0.00   1  0  1  0 98
10680  1716 122.46 148 17.67   0.00   0  0.00   0.00   0  0.00  31  0  3  1 65
10816 10607  35.46  46  1.58   0.00   0  0.00   0.00   0  0.00  15  0  6  0 79
28934 18233   8.12  24  0.19   0.00   0  0.00   0.00   0  0.00   0  0  1  0 98
15441  3369  23.27  66  1.51   0.00   0  0.00   0.00   0  0.00   9  0 13  0 78
5261  1332   24.35 128  3.05   0.00   0  0.00   0.00   0  0.00   8  0  5  1 86
 496   406    5.64 181  0.99   0.00   0  0.00   0.00   0  0.00   0  0  1  1 98
 450   927    8.89 230  2.00   0.00   0  0.00   0.00   0  0.00   3  0  4  0 93
 353  1251    8.44 420  3.46   0.00   0  0.00   0.00   0  0.00   3  0  7  1 89
 365   603   50.22 245 12.02   0.00   0  0.00   0.00   0  0.00  30  0  5  0 65
 435   359   36.42  59  2.08   0.00   0  0.00   0.00   0  0.00   1  0  1  0 98

Die Ausgabe kann mit Ctrl + c abgebrochen werden. Die Werte werden dabei in Kilobytes pro Transfer (KB/t), Transfers pro Sekunde (tps) und Megabytes pro Sekunde (MB/s) angegeben. Auch ist es möglich nur eine bestimmte Anzahl von Messungen durchzuführen. Im folgenden Beispiel wird die Ausgabe nach zwei Messungen beendet:

# iostat 5 2
       tty              ad4             cpu
 tin  tout  KB/t  tps  MB/s  us ni sy in id
   3    70 30.84   22  0.66  26  0  5  0 69
   1    26 127.43  11  1.39  51  0  8  1 41

Auf FreeBSD ist iostat standardmässig im Basissystem vorhanden. Mehr Informationen und alle Optionen von iostat findet man in der Manpage iostat(8).

Comments (2)  Permalink

Vorkonfigurierte ipfw-Firewallregeln verwenden

Möchte man einen FreeBSD -Rechner, der keine Serverdienste zur Verfügung stellt, mittels einer ipfw-Firewall schützen so kann eine vorkonfigurierte Firewall Konfiguration verwendet werden:

firewall_enable="YES"
firewall_type="workstation"

Mit dem Typ workstation wird der Rechner mit einer statefull-Firewallkonfiguration geschützt und keine Serverdienste freigegeben. Nun muss die Konfiguration noch gestartet werden:

# /etc/rc.d/ipfw start

Weitere Firewall-Typen findet man in der Datei /etc/rc.firewall.

Comments (3)  Permalink

/tmp beim Systemstart automatisch löschen

Möchte man den Inhalt der /tmp Partition automatisch beim Systemstart löschen, so kann folgende Zeile in der /etc/rc.conf eingefügt werden:

clear_tmp_enable="YES"
Comments (1)  Permalink

Einem Benutzer nur seine eigenen Prozesse anzeigen

Mit Hilfe der sysctl-Variable security.bsd.see_other_uids kann festgelegt werden, ob ein Benutzer die Prozesse alle Benutzer oder nur seine eigenen sieht. Wird die sysctl-Variable auf 0 gesetzt, kann ein Benutzer nur noch seine eigenen Prozesse mit ps(1) oder top(1) sehen:

# sysctl security.bsd.see_other_uids=0
security.bsd.see_other_uids: 1 -> 0

Soll die Änderung dauerhaft gemacht werden, so kann folgende Zeile in der /etc/sysctl.conf eingefügt werden:

security.bsd.see_other_uids=0
 Permalink

Verzeichnisinhalt gruppiert darstellen

Mit Hilfe von dim lassen sich Verzeichnisinhalte nach Dateiendungen und Dateinamen gruppiert darstellen. Im FreeBSD-Portbaum findet man dim unter sysutils/dim:

# cd /usr/ports/sysutils/dim && make install clean

Zeigt man den Inhalt eines Verzeichnisses mit ls(1) an, so wird der Inhalt alphabetisch ausgegeben:

# ls work/mozilla-central/ipc/chromium/src/third_party/libevent/
ChangeLog               epoll.c                 evrpc-internal.h        mac/
Makefile.am             epoll_sub.c             evrpc.c                 min_heap.h
Makefile.in             evbuffer.c              evrpc.h                 missing
README                  evdns.3                 evsignal.h              mkinstalldirs
README.chromium         evdns.c                 evutil.c                poll.c
aclocal.m4              evdns.h                 evutil.h                quotes.patch
autogen.sh              event-config.h          http-internal.h         sample/
buffer.c                event-internal.h        http.c                  select.c
compat/                 event.3                 install-sh              signal.c
config.guess            event.c                 kqueue.c                strlcpy-internal.h
config.h.in             event.h                 libevent.gyp            strlcpy.c
config.sub              event_rpcgen.py*        linux/                  sys-queue-macros.patch
configure*              event_tagging.c         log.c                   test/
configure.in            evhttp.h                log.h
devpoll.c               evport.c                ltmain.sh

Verwendet man dim, so werden die Dateien spaltenweise nach Dateiendungen und falls identische Dateinamen vorhanden sind zeilenweise sortiert dargestellt:

# dim work/mozilla-central/ipc/chromium/src/third_party/libevent/
ChangeLog              Makefile.am            Makefile.in            aclocal.m4             autogen.sh             
README                 README.chromium        config.h.in                                   ltmain.sh              
compat                 buffer.c                                                                                    
config.guess           devpoll.c              config.sub                                                           
configure              epoll.c                configure.in                                                         
                       epoll_sub.c                                                                                 
                       evbuffer.c                                                                                  
evdns.3                evdns.c                evdns.h                                                              
event.3                event.c                event.h                                                              
event_rpcgen.py        event_tagging.c        event-config.h                                                       
install-sh             evport.c               event-internal.h                                                     
libevent.gyp                                  evhttp.h                                                             
linux                  evrpc.c                evrpc.h                                                              
mac                                           evrpc-internal.h                                                     
missing                                       evsignal.h                                                           
mkinstalldirs          evutil.c               evutil.h                                                             
quotes.patch           http.c                 http-internal.h                                                      
sample                 kqueue.c                                                                                    
sys-queue-macros.patch log.c                  log.h                                                                
test                   poll.c                 min_heap.h                                                           
                       select.c               strlcpy-internal.h                                                   
                       signal.c                                                                                    
                       strlcpy.c    

Mit der -s Option wird zusätzlich noch die Dateigrösse angezeigt:

# dim -s work/mozilla-central/ipc/chromium/src/third_party/libevent/
ChangeLog 11k             Makefile.am 3k            Makefile.in 32k           aclocal.m4 .2m            autogen.sh .2k            
README 1k                 README.chromium .9k       config.h.in 6k                                      ltmain.sh .1m             
compat .5k                buffer.c 9k                                                                                             
config.guess 44k          devpoll.c 10k             config.sub 32k                                                                
configure .7m             epoll.c 8k                configure.in 9k                                                               
                          epoll_sub.c 1k                                                                                          
                          evbuffer.c 10k                                                                                          
evdns.3 11k               evdns.c 85k               evdns.h 18k                                                                   
event.3 17k               event.c 22k               event.h 37k                                                                   
event_rpcgen.py 44k       event_tagging.c 9k        event-config.h 7k                                                             
install-sh 4k             evport.c 12k              event-internal.h 3k                                                           
libevent.gyp 1k                                     evhttp.h 11k                                                                  
linux .5k                 evrpc.c 16k               evrpc.h 16k                                                                   
mac .5k                                             evrpc-internal.h 2k                                                           
missing 10k                                         evsignal.h 2k                                                                 
mkinstalldirs .7k         evutil.c 6k               evutil.h 5k                                                                   
quotes.patch .8k          http.c 66k                http-internal.h 4k                                                            
sample .5k                kqueue.c 11k                                                                                            
sys-queue-macros.patch 1k log.c 4k                  log.h 2k                                                                      
test .5k                  poll.c 9k                 min_heap.h 5k                                                                 
                          select.c 8k               strlcpy-internal.h .3k                                                        
                          signal.c 8k                                                                                             
                          strlcpy.c 2k 

Mehr Informationen zu dim erhält man mit der -h Option.

 Permalink

Herausfinden was vom mount Befehl ausgeführt wird

Möchte man herausfinden wie Dateisysteme mit dem mount Befehl gemountet werden, so kann die -d und -v Option von mount verwendet werden. Folgendes Beispiel zeigt welche Befehle von einem mount -a im Single-User-Mode ausgeführt würden. Die einzelnen Befehle werden dabei nur angezeigt und nicht ausgeführt:

# mount -adv
mount -t ufs -o rw -o update /dev/ad4s3a /
mount -t tmpfs -o rw tmpfs /tmp
mount -t ufs -o rw /dev/ad4s3f /usr
mount -t ufs -o rw /dev/ad4s3d /var
mount -t procfs -o rw proc /proc

Mehr Informationen zu mount findet man in der Manpage mount(8).

 Permalink

Fotogalerie fürs Web auf der Kommandozeile generieren

Mit Hilfe von llgal kann auf der Kommandozeile aus einem Verzeichnis mit Fotos eine statische Fotogalerie generiert werden, welche danach auf ein Webserver geladen werden kann. Im FreeBSD -Portbaum findet mann llgal unter www/llgal:

# cd /usr/ports/www/llgal && make install clean

Möchte man die Fotogalerie erstellen, wechselt man in das Verzeichnis mit den Fotos und führt llgal aus:

# llgal
Listing entries in . :  100.00%
Preparing entries:  100.00%
Found 13 entries in current directory
Using '/usr/local/share/llgal/slidetemplate.html' as HTML slide template.
Creating individual slides:  100.00%
Using '/usr/local/share/llgal/indextemplate.html' as HTML index template.
Creating the index.html file:  100.00%
No llgal.css in .llgal/, getting a copy from /usr/local/share/llgal

Eine index.html Datei als Startseite wurde dabei automatisch generiert. Danach kann das ganze Verzeichnis auf ein Webserver geladen werden. Ein Galerie-Titel kann mit der --title Option festgelegt werden. Mit der --sy Option können alle Bilder auf eine bestimmte Höhe in Pixel angepasst werden:

# llgal --title "Meine Fotos" --sy 480

Alle Optionen von llgal erhält man mit der -h Option.

 Permalink

Meta-Daten aus Dateien auslesen

Möchte man aus verschiedenen Dateien die gespeicherten Meta-Daten auslesen so kann dazu IExtract verwendet werden. Im FreeBSD -Portbaum findet man IExtract unter sysutils/iextract:

# cd /usr/ports/sysutils/iextract && make install clean

Nun können die in einer Datei gespeicherten Meta-Daten ausgelesen werden:

# IExtract bookmarks.html gravatar.jpg qemu.png pack.gif qemu.png Lied.mp3 pf-firewall-eurobsdcon.pdf zusammenfassung.doc
bookmarks.html - My Bookmarks     25.05.2005 15:00:04
gravatar.jpg -     Created with The GIMP 27.10.2005 15:06:51
qemu.png -       06.01.2006 14:22:44
pack.gif -     Created with The GIMP 03.07.2005 09:18:21
qemu.png -       06.01.2006 14:22:44
Lied.mp3 - Irgendein Interpreter! Sein Lied! 07.04.2005 15:48:03
pf-firewall-eurobsdcon.pdf - Brannmur med OpenBSDs PF Peter N. M. Hansteen pdfpagemode Foredrag for BLUG 15.11.2006 17:41:00
zusammenfassung.doc - Kapitel 1 OSI-Referenzmodell   14.04.2005 06:56:12

Möchte man Verzeichnisse rekursiv durchsuchen, so kann dazu die -r Option verwendet werden. Alle Optionen von IExtract erhält man mit der -h Option.

 Permalink

32bit-Bibliotheken auf amd64 nachinstallieren

Möchte man auf einem amd64 Rechner die 32bit-Bibliotheken nachinstallieren, da diese zum Beispiel von einem Port gebraucht werden, muss der FreeBSD-Quellcode unter /usr/src vorhanden sein. Danach können die 32bit-Bibliotheken wie folgt gebaut und installiert werden:

# cd /usr/src
# make build32 install32
# ldconfig -v -m -R /usr/lib32
Comments (1)  Permalink

Nur INDEX-Datei mit portsnap aktualisieren

Möchte man nur die den Port-INDEX mit portsnap aktualisieren, kann die -I Option von portsnap verwendet werden:

# portsnap -I fetch update

Sollen nachträglich auch die Ports aktualisiert werden, kann nur noch das update Kommando nochmals aufgerufen werden:

# portsnap update
 Permalink
Prev Next121-130/521