Mit Hilfe von isoinfo lässt sich der Inhalt eines ISO-Images anzeigen. Im FreeBSD Portbaum findet man isoinfo im Port sysutils/cdrtools:
# cd /usr/ports/sysutils/cdrtools && make install clean
Benutzt man isoinfo mit der -f Option, so werden alle Dateien des ISO-Images angezeigt, als wenn ein find . -print im Image durchgeführt werden würde. Mit der -i Option wird das ISO-Image angegeben, welches ausgelesen werden soll:
# isoinfo -f -i 2.2.8-RELEASE.iso
/ABOUT.TXT
/BIN
/CATPAGES
/CDROM.INF
/COMPAT1X
/COMPAT20
/COMPAT21
/DES
/DICT
/DOC
[...]
Mit der -l Option wird der Inhalt des Images angezeigt, als wenn ein ls -lR im Image ausgeführt werden würde:
# isoinfo -l -i 2.2.8-RELEASE.iso | head
Directory listing of /
d--------- 0 0 0 4096 Mar 31 2006 [ 24 02] .
d--------- 0 0 0 4096 Mar 31 2006 [ 24 02] ..
---------- 0 0 0 8723 Mar 31 2006 [ 804 00] ABOUT.TXT
d--------- 0 0 0 10240 Mar 31 2006 [ 28 02] BIN
d--------- 0 0 0 4096 Mar 31 2006 [ 35 02] CATPAGES
---------- 0 0 0 27 Mar 31 2006 [ 809 00] CDROM.INF
d--------- 0 0 0 2048 Mar 31 2006 [ 43 02] COMPAT1X
d--------- 0 0 0 2048 Mar 31 2006 [ 44 02] COMPAT20
[...]
Durch die -x Option lässt sich eine Datei des Images auf der Standardausgabe ausgeben:
# isoinfo -x /README.TXT -i 2.2.8-RELEASE.iso
-----------------------------------------
FreeBSD 2.2.8 --- RELEASE Version , ,
----------------------------------------- /( )`
\ \___ / |
Welcome to the 2.2.8-RELEASE version of FreeBSD! /- _ `-/ '
(/\/ \ \ /\
This is a full release to follow 2.2.7-RELEASE, / / | ` \
which was released in July, 1998. Many bugs O O ) / |
[...]
Mehr Informationen und weitere Optionen von isoinfo findet man in der Manpage isoinfo(8).
[ FreeBSD ]
by Beat
@ 29.11.2008 13:51 UTC
Mit Hilfe der -s Option von netstat können Statistiken zu verschiedenen Netzwerkprotokollen angezeigt werden. Wird die -s Option zweimal verwendet, so werden alle Zähler die auf 0 stehen nicht angezeigt:
# netstat -s -s
tcp:
20131319 packets sent
7987509 data packets (3819885096 bytes)
25265 data packets (20575251 bytes) retransmitted
1608 data packets unnecessarily retransmitted
6985545 ack-only packets (551074 delayed)
25 window probe packets
4018034 window update packets
1115356 control packets
22627937 packets received
6801128 acks (for 3754613339 bytes)
511098 duplicate acks
16166251 packets (1581592327 bytes) received in-sequence
9474 completely duplicate packets (1610688 bytes)
112 old duplicate packets
79 packets with some dup. data (7143 bytes duped)
249755 out-of-order packets (313240610 bytes)
462004 window update packets
29378 packets received after close
30 discarded for bad checksums
10468 discarded due to memory problems
275397 connection requests
624094 connection accepts
20132 ignored RSTs in the windows
[...]
Wird die -s Option zusammen mit der -r Option verwendet, so werden verschiedene Zähler zum Routing angezeigt. Auch hier kann die -s Option zweimal verwendet werden, um alle Zähler die auf 0 stehen nicht anzuzeigen:
# netstat -r -s
routing:
213 bad routing redirects
0 dynamically created routes
0 new gateways due to redirects
13 destinations found unreachable
0 uses of a wildcard route
0 routes not in table but not freed
Mehr Informationen zu netstat findet man in der Manpage netstat(1).
[ FreeBSD ]
by Beat
@ 28.11.2008 23:45 UTC
Mit Hilfe von dmesg(8) können standardmässig alle Benutzer die Systemmeldungen abrufen:
# dmesg
Copyright (c) 1992-2008 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
The Regents of the University of California. All rights reserved.
FreeBSD is a registered trademark of The FreeBSD Foundation.
FreeBSD 7.1-PRERELEASE #0: Fri Sep 5 22:34:11 CEST 2008
[...]
Durch die sysctl-Variable security.bsd.unprivileged_read_msgbuf kann unprivilegierten Benutzern der Zugriff auf die Systemmeldungen verboten werden:
# sysctl security.bsd.unprivileged_read_msgbuf=0
security.bsd.unprivileged_read_msgbuf: 1 -> 0
Unprivilegierte Benutzer erhalten fortan eine Fehlermeldung beim Aufruf von dmesg:
# dmesg
dmesg: sysctl kern.msgbuf: Operation not permitted
Soll die Option dauerhaft gesetzt werden, kann folgender Eintrag in der /etc/sysctl.conf eingefügt werden:
security.bsd.unprivileged_read_msgbuf=0
Mit Hilfe von tmpreaper lassen sich automatisch Dateien in temporären Verzeichnissen löschen, auf welche eine festgelegte Zeit lang nicht mehr zugegriffen worden ist. Im FreeBSD Portbaum findet man tmpreaper unter sysutlis/tmpreaper:
# cd /usr/ports/sysutils/tmpreaper && make install clean
Es kann angegeben werden, in welchem Verzeichnis nach Dateien gesucht werden soll, auf die eine bestimmte Zeit nicht mehr zugegriffen worden ist. Die festgelegte Zeit wird dabei mit der Zugriffszeit (atime) der Datei verglichen. Mit der --showdeleted Option wird angezeigt, welche Dateien gelöscht werden. Die --test Option zusammen mit der --showdeletet Option zeigen an, welche Dateien gelöscht werden würden, löschen diese aber nicht. Im folgenden Beispiel wird nach Dateien in /tmp gesucht, auf welche seit mehr als 12 Stunden nicht mehr zugegriffen worden ist:
# tmpreaper --test --showdeleted 12h /tmp
(PID 5913) Pretending to clean up directory `/tmp'.
(PID 5914) Pretending to clean up directory `.X11-unix'.
Not a regular file or directory `X0' -- skipping.
(PID 5914) Back from recursing down `.X11-unix'.
(PID 5914) Pretending to clean up directory `.XIM-unix'.
(PID 5914) Back from recursing down `.XIM-unix'.
(PID 5914) Pretending to clean up directory `.ICE-unix'.
(PID 5914) Back from recursing down `.ICE-unix'.
(PID 5914) Pretending to clean up directory `.font-unix'.
(PID 5914) Back from recursing down `.font-unix'.
Pretending to remove file `/tmp/.X0-lock'.
rm /tmp/.X0-lock
Pretending to remove file `/tmp/test'.
rm /tmp/test
Mit der --protect Option können Dateien angegeben werden, welche nicht gelöscht werden sollen:
# tmpreaper --test --showdeleted --protect '/tmp/.*-lock' 12h /tmp
(PID 5993) Pretending to clean up directory `/tmp'.
(PID 5994) Pretending to clean up directory `.X11-unix'.
Not a regular file or directory `X0' -- skipping.
(PID 5994) Back from recursing down `.X11-unix'.
(PID 5994) Pretending to clean up directory `.XIM-unix'.
(PID 5994) Back from recursing down `.XIM-unix'.
(PID 5994) Pretending to clean up directory `.ICE-unix'.
(PID 5994) Back from recursing down `.ICE-unix'.
(PID 5994) Pretending to clean up directory `.font-unix'.
(PID 5994) Back from recursing down `.font-unix'.
Entry matching `--protect' pattern skipped. `/tmp/.X0-lock'
Pretending to remove file `/tmp/test'.
rm /tmp/test
Ohne die --test Option werden die Dateien gelöscht:
# tmpreaper --showdeleted --protect '/tmp/.*-lock' 12h /tmp
rm /tmp/test
Symlinks werden normalerweise nicht gelöscht. Sollen diese auch geprüft und ggf. entfernt werden, kann die --symlinks Option verwendet werden. Mehr Informationen findet man in der Manpage tmpreaper(8).
Führt man ein Programm aus, welches unter gewissen Umständen blockiert, so kann die Ausführzeit des Programms mit Hilfe von timelimit beschränkt werden. Im FreeBSD Portbaum findet man timelimit unter sysutils/timelimit:
# cd /usr/ports/sysutils/timelimit && make install clean
Mit der -t Option kann festgelegt werden, nach wievielen Sekunden ein Warnsignal an den ausgeführten Prozess gesendet werden soll. Standardmässig wird dabei ein SIGTERM an den Prozess geschickt. Beendet sich der Prozess nicht, wird nach einer mittels der -T Option festgelegten Zeit ein weiteres Signal (standardmässig SIGKILL) an den Prozess gesendet:
# timelimit -t 1 -T 2 sleep 3
timelimit: sending warning signal 15
# timelimit -t 1 -T 2 ./ignoreSIGTERM
timelimit: sending warning signal 15
timelimit: sending kill signal 9
Die gesendeten Signale können mit der -s und der -S Option geändert werden. In diesem Beispiel wird als Warnsignal ein SIGUSER1 und als Killsignal ein SIGUSER2 gesendet:
# timelimit -s SIGUSR1 -S SIGUSR2 -t <Warnzeit> -T <Killzeit> <Befehl> <Argumente>
Mehr Informationen zu timelimit findet man in der Manpage timelimit(1).
Mit Hilfe von ttyload können die CPU-Load Werte graphisch in einem Terminal dargestellt werden. Im FreeBSD Portbaum findet man ttyload unter sysutils/ttyload:
# cd /usr/ports/sysutils/ttyload && make install clean
Nun kann ttyload gestartet werden. Die Kurven für den 1min, 5min und 15min CPU-Load werden dabei in unterschiedlichen Farben dargestellt:
# ttyload
Sollen die Loadkurven anstatt in Farbe als Zahlen dargestellt werden, kann die -m Option verwendet werden. Nun wird die 1min Loadkurve als 1, die 5min Kurve als 2 und die 15min als 4 dargestellt. Fallen die Werte von verschiednenen Kurven aufeinander, so werden die Kurvennummern addiert:
# ttyload -m
test.chruterteee.ch 0.41, 1.00, 1.09 3:43:54 ttyload, v0.5
2.00
1.88
1.75
1.62
1.50
1.38 222222222222 33333223222
1.25 4444444444446666666666666666664444455455577666666666666644
1.12 11 111111111 2266666664
1.00 111111111 11111111 111 2
0.88 11 11111 1
0.75 1111 1111
0.62 11
0.50 1111
0.38
0.25
0.12
0.00
^13:40 ^13:41 ^13:42 ^13:43
Legend:
1 min: 1, 5 min: 2, 15 min: 4
1&5 same: 3, 1&15: 5, 5&15: 6, all: 7
Alle Optionen von ttyload können mit der -h Option angezeigt werden.
Eine Textdatei kann mit Hilfe von rev zeilenweise in umgekehrter Reihenfolge angezeigt werden:
# cat test
1:2:3
a:b:c
.:!:$
# rev test
3:2:1
c:b:a
$:!:.
rev ist auf FreeBSD und OpenBSD im Basissystem vorhanden. Informationen zu rev findet man in der Manpage rev(1).