BlogBlog ÜbersichtjailscriptportsoptFreeBSDLinksThermoskanne

Prüfsummen der Dateien eines Ports vergleichen

Mit Hilfe von pkg_info und der -g Option lassen sich die Prüfsummen aller installierten Dateien eines Ports mit den Prüfsummen vergleichen, welche bei der Installation eines Ports gespeichert wurden:

# pkg_info -g portsopt-\*
Information for portsopt-1.4:

Mismatched Checksums:
/usr/local/sbin/portsopt fails the original MD5 checksum

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

 Permalink

RAM-Disk mit mdmfs erstellen

Auf FreeBSD lässt sich mit mdmfs eine RAM-Disk im Betrieb erstellen. Im folgenden Beispiel wird eine 128MB grosse RAM-Disk erstellt und nach /mnt/ramdisk gemountet:

# mkdir /mnt/ramdisk
# mdmfs -s 128m md /mnt/ramdisk

Wird die RAM-Disk nicht mehr gebraucht, kann sie mit umount aus dem Dateisystem entfernt werden und die Ressourcen können mit mdconfig freigegeben werden. Dabei ist zu beachten, dass die richtige md-Device-Nummer verwendet wird.

# df -h | grep ramdisk
/dev/md0 124M 4.0K 114M 0% /mnt/ramdisk
# umount /mnt/ramdisk
# mdconfig -d -u 0

Benutzer von FreeBSD 7.0 können RAM-Disks auch mit tmpfs erstellen. Mehr Informationen zu mdmfs findet man in der Manpage mdmfs(8).

 Permalink

Notizen zur Konfiguration eines Servers mit FreeBSD 7.0

Das PDF mit Notizen zur Konfiguration eines Servers mit FreeBSD wurde auf FreeBSD 7.0 aktualisiert. Es kann unter http://www.chruetertee.ch/freebsd/ heruntergeladen werden. Dabei handelt es sich nicht um eine Schritt-für-Schritt Anleitung, sondern mehr um eine Sammlung von Möglichkeiten zur Konfiguration.
 Permalink

Durchsatz einer Netzwerkschnittstelle beobachten

Möchte man den aktuellen Durchsatz einer Netzwerkschnittstelle beobachten, kann man ifstat verwenden. ifstat findet man in den FreeBSD Ports unter net/ifstat:

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

Ruft man ifstat ohne Optionen auf, wird der aktuelle Durchsatz aller aktiven Netzwerkschnittstellen ausser der Loopback-Schnittstelle angezeigt. Der aktuelle Wert wird immer unter die letzte Zeile geschrieben:

# ifstat
em0 ath0
KB/s in KB/s out KB/s in KB/s out
0.00 0.00 301.53 9.91
0.00 0.00 257.42 7.66
0.00 0.00 304.30 9.36
0.00 0.00 314.56 9.77
0.00 0.00 274.49 12.07
0.00 0.00 451.21 14.38

Soll nur jeweils der aktuelle Wert alleine angezeigt werden, kann die -S Option verwendet werden:

# ifstat -S
em0 ath0
KB/s in KB/s out KB/s in KB/s out
0.00 0.00 344.64 10.11

Möchte man die Werte der verschiedenen Schnittstellen addieren, kann mit der -T Option ein Total-Wert angezeigt werden:

# ifstat -S -T
em0 ath0 Total
KB/s in KB/s out KB/s in KB/s out KB/s in KB/s out
26.49 0.00 345.02 39.49 371.51 39.49

Soll die Loopback-Schnittstelle auch angezeigt werden, kann dazu die -l Option verwendet werden:

# ifstat -S -l
em0 ath0 lo0
KB/s in KB/s out KB/s in KB/s out KB/s in KB/s out
0.00 0.00 365.15 11.23 40.00 40.00

Mit der -t Option wird jeweils die aktuelle Zeit am Anfang der Zeile angezeigt:

# ifstat -t
Time em0 ath0
HH:MM:SS KB/s in KB/s out KB/s in KB/s out
18:54:01 0.00 0.00 356.23 11.20
18:54:02 0.00 0.00 352.90 10.86
18:54:03 0.00 0.00 302.90 9.60

ifstat kann durch das Drücken von Ctrl + C wieder beendet werden. Mehr Informationen zu ifstat findet man in der Manpage ifstat(1).

Comments (3)  Permalink

Fortschritt einer Pipe beobachten

Mit Hilfe von pv kann der Durchsatz und die Menge der gesendeten Daten durch eine Pipe beobachtet werden. pv findet man in den FreeBSD Ports unter sysutils/pv.

cd /usr/ports/sysutils/pv && make install clean

Nun kann pv vor der zu beobachtenden Pipe aufgerufen werden. Es wird angezeigt, wie viele Daten bereits durch die Pipe gesendet wurden, die verstrichene Bearbeitungszeit und der Durchsatz durch die Pipe:

# dd if=/dev/acd0 bs=2048 | pv | gzip > test.iso.gz
93.6MB 0:00:55 [1.92MB/s] [ <=> ]

Falls möglich, versucht pv die verbleibende Dauer zu errechnen. Ist das nicht möglich, kann bei pv mit der -s Option die Datenmenge angegeben werden, die durch die Pipe gesendet wird und nun kann pv die verbleibende Dauer berechnen.

# dd if=/dev/acd0 bs=2048 | pv -s 130m | gzip > test.iso.gz
11.5MB 0:00:22 [ 603kB/s] [====> ] 8% ETA 0:03:46

Sollen mehrere Pipes beobachtet werden, kann pv zusammen mit -cN und dem Namen des Programmes, zu welchem die Daten durch die Pipe gelenkt werden, verwendet werden:

# bzcat test.bz2 | grep NULL | pv -cN grep | awk '{print $1}' | pv -cN awk > test
grep: 56.9MB 0:00:08 [7.69MB/s] [ <=> ]
awk: 2.82MB 0:00:08 [ 361kB/s] [ <=> ]

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

 Permalink

Einzelnen Port im Portbaum wiederherstellen

Mit portsnap lässt sich der FreeBSD Portbaum aktualisieren. Möchte man nur einen einzelnen Port wiederherstellen, weil dieser gelöscht oder verändert wurde, so kann der Portname mit der Kategorie an ein portsnap extract übergeben werden. Danach wird nur dieser Port wiederhergestellt:

# portsnap extract ports-mgmt/portsopt
/usr/ports/ports-mgmt/portsopt/

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

 Permalink

Unsichtbare Zeichen einer Datei anzeigen

Befinden sich in einer Textdatei unsichtbare Zeichen, werden diese zum Beispiel von cat nicht angezeigt:

# cat testdatei 
RECURSIVE=no
CONFIG=no
   
while getopts 'chr' COMMAND_LINE_ARGUMENT ; do
        case "${COMMAND_LINE_ARGUMENT}" in
                c)              CONFIG=yes ;;
                h)      usage 0 ;;
        r)      RECURSIVE=yes ;;
                *)      usage ;;
        esac
done

Benutzt man cat mit der -v Option werden alle Steuerzeichen angezeigt. Nun sieht man, dass sich ein Ctrl+X (^X) in der Datei befindet:

# cat -v testdatei
RECURSIVE=no
CONFIG=no
  
while getopts 'chr' COMMAND_LINE_ARGUMENT ; do
        case "${COMMAND_LINE_ARGUMENT}" in
                c)              CONFIG=yes ;;
                h)      usage 0 ;;
        r)      RECURSIVE=yes ;;
^X              *)      usage ;;
        esac
done

cat mit der -t Option zeigt nun auch alle Tabulatoren als ^I an:

# cat -t testdatei
RECURSIVE=no
CONFIG=no
  
while getopts 'chr' COMMAND_LINE_ARGUMENT ; do
^Icase "${COMMAND_LINE_ARGUMENT}" in
^I^Ic)^I^ICONFIG=yes ;;
^I^Ih)      usage 0 ;;
    ^Ir)      RECURSIVE=yes ;;
^X^I^I*)      usage ;;
^Iesac
done

Möchte man sich auch die Zeilenumbrüche anzeigen lassen, kann man dazu vis mit der -l Option verwenden, welches Zeilenumbrüche als \$ darstellt:

# vis -l testdatei
RECURSIVE=no\$
CONFIG=no\$
    \$
while getopts 'chr' COMMAND_LINE_ARGUMENT ; do\$
        case "${COMMAND_LINE_ARGUMENT}" in\$
                c)              CONFIG=yes ;;\$
                h)      usage 0 ;;\$
        r)      RECURSIVE=yes ;;\$
\^X             *)      usage ;;\$
        esac\$
done\$

Sowohl cat als auch vis sind auf FreeBSD und OpenBSD im Basissystem vorhanden. Mehr Informationen zu cat und vis findet man in den Manpages cat(1) und vis(1).

 Permalink
1-7/7