BlogBlog ÜbersichtjailscriptportsoptFreeBSDLinksThermoskanne

Überprüfen ob man sich in einer Jail befindet

Mit Hilfe der sysctl-Variable security.jail.jailed kann herausgefunden werden ob man sich in einer FreeBSD-Jail befindet. Ist die Variable auf 0 befindet man sich auf dem Hostsystem, ist die Variable auf 1 befindet man sich innerhalb einer Jail:

# sysctl security.jail.jailed
security.jail.jailed: 0
# jls
   JID  IP Address      Hostname                      Path
     1  192.168.1.2     test1.chruetertee.ch          /usr/jails/test1.chruetertee.ch
# jexec 1 tcsh
# sysctl security.jail.jailed
security.jail.jailed: 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

Herausfinden in welcher Jail ein Prozess läuft

Möchte man herausfinden in welcher Jail ein Prozess läuft, kann dazu ps mit der -o jid Option auf dem Host-System ausgeführt werden. Danach wird zu jedem Prozess die Jail-ID angezeigt. Prozesse welche auf dem Host-System laufen haben die Jail-ID 0:

# ps axo jid,command
   5 screen -r
   5 irssi
   0 sshd: test [priv] (sshd)
   0 sshd: test@ttyp1 (sshd)
   3 /usr/sbin/named -u bind
   4 /usr/local/sbin/httpd
[...]

Mit jls kann danach herausgefunden werden, welche Jail-ID zu welcher Jail gehört:

# jls
   JID  IP Address      Hostname                      Path
     5  192.168.1.2     test1.chruetertee.ch          /usr/jails/test1.chruetertee.ch
     4  192.168.1.3     test2.chruetertee.ch          /usr/jails/test2.chruetertee.ch
     3  192.168.1.4     test3.chruetertee.ch          /usr/jails/test3.chruetertee.ch
     2  192.168.1.5     test4.chruetertee.ch          /usr/jails/test4.chruetertee.ch
     1  192.168.1.6     test5.chruetertee.ch          /usr/jails/test5.chruetertee.ch

Mehr Informationen findet man in der Manpage ps(1) und jls(8).

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

Tinderbox-Jail ohne Kompilieren erstellen

Seit Tinderbox 3.3 ist es nun auch möglich eine Tinderbox-Jail ohne Kompilieren zu erstellen. Dazu muss zuerst lftp installiert werden:

# cd /usr/ports/ftp/lftp && make install clean

Danach kann die Jail erstellt werden. Mit der -u LFTP Option wird angegeben, dass lftp zum Herunterladen einer FreeBSD-Installations-CD verwendet werden soll, aus welcher die Tinderbox-Jail erstellt wird. Mit der -H Option kann der FTP-Server gewählt werden, von welchem die Installations-CD herunterladen wird. Im folgenden Beispiel wird eine 7.3-RELEASE Jail erstellt:

# cd /usr/local/tinderbox/scripts
# ./tc createJail -j 7.3 -d "FreeBSD 7.3-RELEASE" -t 7.3-RELEASE -u LFTP -H ftp.ch.freebsd.org
7.3: initializing tree
7.3: creating top-level directory
7.3: adding to datastore... done.
7.3: initializing new jail...
7.3: updating jail with LFTP
7.3: cleaning out /usr/local/tinderbox/jails/7.3/obj
7.3: cleaning out /usr/local/tinderbox/jails/7.3/tmp
7.3: creating tarball
7.3: cleaning out /usr/local/tinderbox/jails/7.3/tmp
7.3: cleaning out /usr/local/tinderbox/jails/7.3/obj
Cleaning up after Jail creation.  Please be patient.
Related Entries:
Tinderbox aufräumen
Wartezeit von tinderd ändern
Quellcode in der Tinderbox speichern
RSS-Feed der zuletzt gebauten Ports einer Tinderbox
Port-Optionen in der Tinderbox verwenden
 Permalink

Mehrere CPU-Kerne zur gzip-Komprimierung nutzen

Möchte man mehrere CPU-Kerne zum Komprimieren mit gzip verweden, so kann dazu pigz verwendet werden. Im FreeBSD-Portbaum findet man pigz unter archivers/pigz:

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

Im folgenden Beispiel wird zuerst eine Datei mit gzip komprimiert und danach mit gunzip wieder entpackt:

# du -h test
155M    test
# /usr/bin/time -h gzip test
        17.76s real             17.47s user             0.09s sys
# du -h test.gz
 47M    test.gz
# /usr/bin/time -h gunzip test.gz
        3.16s real              1.36s user              0.20s sys
# du -h test
155M    test

Danach wird die gleiche Datei mit pigz komprimiert, wobei alle vorhanden (in diesem Beispiel zwei) CPU-Kerne verwendet werden. Danach wird die Datei mit unpigz wieder entpackt:

# du -h test
155M    test
$ /usr/bin/time -h pigz test
        9.30s real              17.80s user             0.22s sys
# du -h test.gz
 47M    test.gz
# /usr/bin/time -h unpigz test.gz
        3.14s real              1.35s user              0.30s sys
# du -h test
155M    test

Mehr Informationen zu pigz findet man in der Manpage pigz(1). Möchte man mehrere CPU-Kerne für das bzip2-Komprimieren verwenden, so kann dazu pbzip2 verwendet werden.

 Permalink

Geeignete GCC Flags zur Optimierung bestimmen

Möchte man aus irgendeinem Grunde GCC Flags zur Optimierung verwenden, so kann mit cpuflags die zum Prozessor geeigneten Flags bestimmt werden. Im FreeBSD Portbaum findet man cpuflags unter devel/cpuflags:

# cd /usr/ports/devel/cpuflags && make install clean

Nachdem cpuflags installiert ist, kann das Skript ausgeführt werden und die GCC Flags werden angezeigt:

# cpuflags
-mfpmath=sse -msse3 -march=nocona
Comments (2)  Permalink

Login-Shell eines Benutzers ändern

Möchte man auf FreeBSD seine Login-Shell ändern, kann dazu chsh verwendet werden. Nun kann im gestarteten Standard-Editor die Login-Shell und andere Benutzerinformationen geändert werden:

# chsh
#Changing user information for beat.
Shell: /bin/csh
Full Name: Beat Gätzi
Office Location:
Office Phone:
Home Phone:
Other information:

Beendet man den Editor, muss man zur Kontrolle sein Passwort eingeben. Danach werden die Änderungen gespeichert. Führt man chsh als root aus, können weitere Details eines Benutzers geändert werden:

# chsh <Benutzer>

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

 Permalink

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
1-7/7