BlogBlog ÜbersichtjailscriptportsoptFreeBSDLinksThermoskanne

Verfügbare Dateisystemtypen anzeigen

Alle verfügbaren Dateisystemtypen, welche sich auf einem System mounten lassen, können mit lsvfs angezeigt werden:

# lsvfs 
Filesystem                        Refs Flags
-------------------------------- ----- ---------------
nfs                                  0 network
ufs                                  4 
devfs                                1 synthetic
cd9660                               0 read-only
msdosfs                              0 
nfs4                                 0 network
procfs                               0 synthetic

Werden nun weitere Dateisysteme mittels dem entsprechenden Kernelmodul nachgeladen, so werden diese danach auch in der Liste aufgeführt. In der Spalte Refs wird die Anzahl gemounteter Dateisysteme pro Typ angezeigt:

# kldload nullfs
# /etc/rc.d/zfs onestart
# lsvfs
Filesystem                        Refs Flags
-------------------------------- ----- ---------------
nfs                                  0 network
ufs                                  4 
devfs                                1 synthetic
cd9660                               0 read-only
msdosfs                              0 
nfs4                                 0 network
procfs                               0 synthetic
nullfs                               0 loopback
zfs                                  0 jail, delegated-administration

Dateisysteme, welche das jail-Flag gesetzt haben, können, falls die sysctl-Variable security.jail.mount_allowed auf 1 gesetzt ist, auch innerhalb einer Jail gemountet werden. Mehr Informationen zu lsvfs findet man in der Manpage lsvfs(1).

 Permalink

crashinfo beim Systemstart automatisch ausführen

Soll nach einem Kernel-Crash automatisch beim Systemstart eine crashinfo-Datei erstellt werden, so kann folgende Zeile in der /etc/rc.conf eingefügt werden:

crashinfo_enable="YES"

Die crashinfo-Datei wird dabei automatisch beim Systemstart in /var/crash erstellt:

[...]
Starting syslogd.
Checking for core dump on /dev/ad4s3b...
savecore: reboot after panic: page fault
May 28 17:33:36 test savecore: reboot after panic: page fault
savecore: writing core to vmcore.7
Writing crash summary to /var/crash/core.txt.7.
Initial i386 initialization:
[...]

Mehr Informationen zu crashinfo findet man in der Manpage crashinfo(8). Ein Beispiel einer crashinfo-Datei findet man hier: core.txt.0

 Permalink

Aktuelle Session nach dem Abmelden offen lassen

Im FreeBSD Portbaum findet man unter misc/tmux mit tmux eine BSD-lizenzierte Alternative zu GNU Screen. Damit ist es möglich sich von einem Rechner abzumelden und bei der nächsten Anmeldung die alte Session weiterzuverwenden:

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

Folgendermassen kann auf dem Rechner eine neue Session gestartet werden, deren Inhalt auch nach dem Ab- und erneuten Anmelden noch verfügbar ist:

# tmux

Um sich von einer Session zu trennen ohne sie zu beenden, drückt man Ctrl+b d. Nun kann man sich abmelden, die Session bleibt aber im Hintergrund offen. Beim nächsten Anmelden setzt man die Session wie folgt fort:

# tmux attach

Eine Liste aller verfügbaren Tastenkombinationen erhält man durch das Drücken von Ctrl+b ?. Alle Möglichkeiten von tmux und die verfügbaren Tastenkombinationen und Kommandos findet man in der Manpage tmux(1).

 Permalink

Abkürzungen auf der Kommandozeile nachschlagen

Möchte man auf der Kommandzeile die Bedeutung einer Abkürzung nachschauen, so kann wtf dazu verwendet werden, welches man im FreeBSD Portbaum unter games/wtf findet:

# cd /usr/ports/games/wtf && make install clean

Nach der Installation können Abkürzungen mit Hilfe von wft nachgeschlagen werden:

# wtf bofh
BOFH: bastard operator from hell

Mehr Informationen zu wtf findet man in der Manpage wtf(6).

 Permalink

Sonderzeichen in Dateinamen konvertieren

Hat man Dateien, welche unter einem anderen als dem auf dem eigenen Rechner verwendeten Zeichensatz erstellt wurden, so können zum Beispiel Umlaute falsch dargestellt werden. Diese können mit Hilfe von convmv konvertiert werden. Im FreeBSD Portbaum findet man convmv unter converters/convmv:

# cd /usr/ports/converters/convmv && make install clean

Im folgenden Beispiel wird ein Ordner mit einer Datei, welche Umlaute im Dateinamen enthält und auf einem System mit UTF8 erstellt wurde, auf einem System mit ISO8859-1 dargestellt:

# ls -al ÀöÌ
total 4
drwxr-xr-x  2 beat  wheel  512  9 Mai 20:51 ./
drwxrwxrwt  9 root  wheel  512  9 Mai 20:51 ../
-rw-r--r--  1 beat  wheel    0  9 Mai 20:49 morgÀ

Mit convmv können die Dateinamen nun konvertiert werden. Dazu wird zuerst ein Test vorgenommen, ob der Dateiname richtig konvertiert werden kann. Die -f Option gibt den ursprünglichen Zeichensatz, die -t Option den auf dem eigenen Rechner verwendeten Zeichensatz an. Mit der -r Option wird bei einem Ordner auch dessen Inhalt umgewandelt:

# convmv -r -f UTF-8 -t ISO8859-1 ÀöÌ
Starting a dry run without changes...
mv "ÀöÌ/morgÀ"      "ÀöÌ/morgä"
mv "./ÀöÌ"   "./äöü"
No changes to your files done. Use --notest to finally rename the files.

Ist der Test erfolgreich verlaufen, kann die Konvertierung mit --notest durchgeführt werden:

# convmv --notest  -r -f UTF-8 -t ISO8859-1 ÀöÌ
mv "ÀöÌ/morgÀ"      "ÀöÌ/morgä"
mv "./ÀöÌ"   "./äöü"
Ready!
# ls -al äöü/
total 4
drwxr-xr-x  2 beat  wheel  512  9 Mai 20:52 ./
drwxrwxrwt  9 root  wheel  512  9 Mai 20:52 ../
-rw-r--r--  1 beat  wheel    0  9 Mai 20:49 morgä

Auch lassen sich mit convmv Dateinamen in ausschliesslich Klein- oder Grossbuchstaben umwandeln:

# convmv --notest --upper klein
mv "./klein"    "./KLEIN"
Ready!
# convmv --notest --lower KLEIN 
mv "./KLEIN"    "./klein"
Ready!

Hat man Dateien, in deren Namen die Leerzeichen mit %20 kodiert wurden, können auch diese mit convmv umgewandelt werden:

#  convmv --notest --unescape dateinamen%20mit%20leerzeichen 
mv "./dateinamen%20mit%20leerzeichen"      "./dateinamen mit leerzeichen"
Ready!

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

 Permalink

Mehrere CPU-Kerne zur bzip2-Komprimierung nutzen

Hat man einen Rechner mit mehreren CPU-Kernen und/oder mehreren Prozessoren und möchte eine grosse Datei mit bzip2 komprimieren, so kann die Zeit, die zum Komprimieren benötigt wird, mit pbzip2 linear um die Anzahl Kerne gesenkt werden. Im FreeBSD Portbaum findet man pbzip2 unter archivers/pbzip2:

# cd /usr/ports/archivers/pbzip2 && make install clean

Im folgenden Beispiel wird zuerst eine Datei mit bzip2 komprimiert:

# du -h test 
153M    test
# /usr/bin/time -h bzip2 test
        36,94s real             36,43s user             0,30s sys
# du -h test.bz2 
 61M    test.bz2
# bunzip2  test.bz2
# du -h test 
153M    test

Danach wird die gleiche Datei mit pbzip2 komprimiert, wobei beide Prozessorkerne genutzt werden können. Die Zeit, die zum Komprimieren benötigt wird, wird so beinahe halbiert. Die komprimierte Datei kann danach mit bunzip2(1) wieder entpackt werden:

# du -h test 
153M    test
# /usr/bin/time -h pbzip2 test
        20,34s real             38,19s user             1,09s sys
# du -h test.bz2 
 61M    test.bz2
# bunzip2  test.bz2
# du -h test 
153M    test

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

 Permalink

Dateien mit unbekannten UIDs/GIDs suchen

Möchte man wöchentlich nach Dateien suchen welche unbekannte User-IDs oder Group-IDs besitzen, kann folgende Zeile in der /etc/periodic.conf eingefügt werden:

weekly_noid_enable="YES"

Danach werden die entsprechenden Dateien im wöchentlichen Statusmail aufgeführt, können danach überprüft werden:

[...]

Check for files with an unknown user or group:
  /tmp/smstools
  /tmp/smstools/doc
  /usr/local/tinderbox/8.0-FreeBSD/var/mail/messagebus
  /usr/local/tinderbox/8.0-FreeBSD/var/mail/polkit
  /usr/local/tinderbox/8.0-FreeBSD/var/mail/avahi
  /usr/local/tinderbox/8.0-FreeBSD/var/mail/haldaemon
  /usr/local/tinderbox/8.0-FreeBSD/var/lib/hal

[...]
 Permalink

NTP-Status in den täglichen Servermails anzeigen

Synchronisiert man die Zeit eines FreeBSD -Servers mit NTP, so kann man den NTP Status in den täglichen Servermails anzeigen lassen. Dazu kann folgender Eintrag in der /etc/periodic.conf gemacht werden:

daily_status_ntpd_enable="YES"

Danach findet man die entsprechende Ausgabe in den täglichen Statusmails:

[...]

NTP status:
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*mein.ntp.ch          1.1.3.220    2 u  254  512  377   1.666   -1.197   0.469

[...]
 Permalink

Informationen zu einer FreeBSD-Installation auslesen

Mit Hilfe von sysinfo können Informationen zu einem FreeBSD-System ausgelesen werden. Im FreeBSD Portbaum findet man sysinfo unter sysutils/sysinfo:

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

Führt man sysinfo mit der -a Option aus, werden verschiedene Informationen zum Rechner und der FreeBSD-Installation angezeigt:

# sysinfo -a

Sollen zusätzliche Informationen angezeigt werden, kann die Option -v 1 verwendet werden:

# sysinfo -a -v 1

Soll die Ausgabe nicht farbig dargestellt werden, kann -c verwendet werden. So lässt sich die Ausgabe auch ohne Probleme in eine Textdatei umleiten:

# sysinfo -a -c -v 1 > /tmp/sysinfo

Das Verhalten von sysinfo lässt sich auch in der Datei /usr/local/etc/sysinfo.conf konfigurieren. Eine Beispielausgabe von sysinfo findet man hier.

 Permalink

Verfügbarkeit eines TCP-Ports testen

Möchte man zum Beispiel in einem Shell-Skript die Verfügbarkeit eines TCP-Ports prüfen, so kann dazu tcping verwendet werden, welches man im FreeBSD Portbaum unter net/tcping findet:

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

Nun können die IP-Adresse und der TCP-Port angegeben werden, zu welchen eine Verbindung aufgebaut werden soll. Kann die Verbindung erfolgreich hergestellt werden, wird der Rückgabewert 0 zurückgegeben:

# tcping 217.150.245.53 80
217.150.245.53 port 80 open.
# echo $?
0

Wird die Verbindung zurückgewiesen, wird der Rückgabewert 1 zurückgegeben:

# tcping 127.0.0.1 81
127.0.0.1 port 81 closed.
# echo $?
1

Wird der Verbindungsversuch nicht zurückgewiesen, jedoch die Pakete von z.B. einem Paketfilter verworfen, so kann die Verbindung nicht aufgebaut werden. Bei solch einer Zeitüberschreitung des Verbindungsversuchs wird der Rückgabewert 2 zurückgegeben. Mit der -t Option kann die Anzahl Sekunden angegeben werden, ab wann eine Zeitüberschreitung angegeben wird:

# tcping -t 2 217.150.245.53 81
217.150.245.53 port 81 user timeout.
# echo $?
2
Comments (1)  Permalink
Prev Next51-60/84