BlogBlog ÜbersichtjailscriptportsoptFreeBSDLinksThermoskanne

Via Remote-Tunnel mit SSH auf einen Rechner zugreifen

Möchte man auf einen Rechner mit SSH zugreifen, der Zugang per SSH wird jedoch durch einen Paketfilter geblockt, so kann der Zugang durch einen Remote-Tunnel freigegeben werden. Im folgenden Beispiel soll auf einen Client-Rechner per SSH zugegriffen werden. Dazu muss zuerst mit SSH der Remote-Tunnel vom Client-Rechner zum Server geöffnert werden. Die -g Option erlaubt dem Server, den Remote-Tunnel zu nutzen:

Client# ssh -g -R 2222:localhost:22 <Benutzer>@<Server>

Meldet man sich nun auf dem Server an, sieht man den geöffneten Tunnel:

Server# sockstat -4 | grep 2222
benutzer     sshd       28372 7  tcp4   127.0.0.1:2222        *:*

Nun kann man sich auf dem Server durch den Tunnel mit dem Client-Rechner verbinden:

Server# ssh -p 2222 <Benutzer>@localhost
Password:*******
Client#

Mehr Informationen zu den Möglichkeiten mit SSH findet man in der Manpage ssh(1).

 Permalink

Festplatte mit recoverdisk kopieren

Mit Hilfe von recoverdisk lässt sich der Inhalt einer Festplatte auf eine andere Festplatte kopieren. Kann dabei ein Block nicht gelesen werden, wird der Block übersprungen, am Schluss jedoch nochmals mit einer kleineren Blockgrösse gelesen. Im folgenden Beispiel wird die Festplatte da2 auf da3 kopiert:

# recoverdisk /dev/da2 /dev/da3
        start    size     block-len state          done     remaining    % done
  36419141632  933376        933376     0   36420075008             0 100.00000
Completed

Auch lässt sich der Inhalt einer Partition in eine Datei kopieren. Dazu muss zuerste eine entsprechende Datei angelegt werden:

# touch /usr/ad4s3e.dump
# recoverdisk /dev/ad4s3e /usr/ad4s3e.dump
        start    size     block-len state          done     remaining    % done
    101711872 1048576     435159040     0     101711872     435159040  18.94531

Ist das Kopieren abgeschlossen, kann die in eine Datei kopierte Partition z.B. nur lesend ins System gemountet werden:

# recoverdisk /dev/ad4s3e /usr/ad4s3e.dump
        start    size     block-len state          done     remaining    % done
    535822336 1048576       1048576     0     536870912             0 100.00000
Completed
# mdconfig -a -t vnode -f /usr/ad4s3e.dump -u 0
# mount -o ro /dev/md0 /mnt

Werden die kopierten Daten nicht mehr benötigt, können diese wieder aus dem System entfernt werden:

# umount /mnt
# mdconfig -d -u 0

Seit FreeBSD 7.0 findet man recoverdisk im FreeBSD -Basissystem. Mehr Informationen zu recoverdisk findet man in der Manpage recoverdisk(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

sendmail Statistiken erstellen

Mit Hilfe von mailstats können Statistiken des sendmail-Daemon erstellt werden. Dabei werden verschiedene Werte der sendmail-Mailer dargestellt. Der Wert msgsfr zählt alle vom Mailer versendeten, der Zähler msgsto die vom Mailer empfangenen Mails an. Die Werte bytes_from und bytes_to zeigen die Grösse der versendeten und empfangenen Mails in Bytes an. Die Anzahl zurückgewiesener Mails wird durch den Zähler msgsrej, die Anzahl verworfenen Mails wird durch den Zähler msgsdis angezeigt. In der Spalte T wird das Total aller Mailer angezeigt, die Spalte C zeigt die Anzahl TCP Verbindugen an:

# mailstats
Statistics from Sat Jan 17 03:01:03 2009
 M   msgsfr  bytes_from   msgsto    bytes_to  msgsrej msgsdis msgsqur  Mailer
 3        7      78364K        1          2K        0       0       0  local
 5       23      39201K       23         25K        0       0       0  esmtp
=====================================================================
 T       30     117565K       24         27K        0       0       0
 C       27                   49                    0

Möchte man die Statistiken einer gespeicherten sendmail-Statistikdatei anzeigen, so kann diese mit der -f Option an mailstats übergeben werden:

# mailstats -f /var/log/sendmail.st.3
Statistics from Sun Dec 21 22:18:17 2008
 M   msgsfr  bytes_from   msgsto    bytes_to  msgsrej msgsdis msgsqur  Mailer
 3       19         96K       17         98K        0       0       0  local
 5        2          2K        0          0K        1       0       0  esmtp
=====================================================================
 T       21         98K       17         98K        1       0       0
 C       20                    0                    1

Im FreeBSD und OpenBSD Basissystem ist mailstats bereits vorhanden. Mehr Informationen zu mailstats findet man in der Manpage mailstats(8).

 Permalink

Speicherplatzverbrauch darstellen

Möchte man herausfinden, welche Dateien wieviel Speicherplatz verbrauchen, so kann dies mit Hilfe von durep übersichtlich dargestellt werden. durep findet man im FreeBSD Portbaum unter sysutlis/durep:

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

Nun kann das gewünschte Verzeichnis angegeben werden und der Speicherplatzverbrauch wird entsprechend angezeigt. Dabei werden die Verzeichnisse und Dateien anhand des gebrauchten Speicherplatzes sortiert:

# durep /tmp/test
[ /tmp/test     3.3M (0 files, 1 dirs) ]
   3.3M [##############################] 100.00% test2/
       1.9M [#################             ]  57.35% file1
       1.0M [#########                     ]  30.92% test3/
         578.9K [################              ]  55.01% file2
         473.4K [#############                 ]  44.99% file3
     399.1K [###                           ]  11.73% file4

Möchte man die Tiefe der Darstellung begrenzen, kann die -td Option verwendet werden:

# cd /usr/local
# durep -td 1
[ /usr/local   652.5M (0 files, 12 dirs) ]
 358.9M [################              ]  55.00% lib/
 152.4M [#######                       ]  23.36% share/
  62.4M [##                            ]   9.56% bin/
  57.7M [##                            ]   8.84% include/
   7.8M [                              ]   1.19% man/
   6.1M [                              ]   0.93% info/
   5.0M [                              ]   0.76% libexec/
   1.7M [                              ]   0.27% sbin/
 357.8K [                              ]   0.05% translations/
 145.2K [                              ]   0.02% etc/
  84.7K [                              ]   0.01% libdata/
  12.4K [                              ]   0.00% www/

Sollen nur Dateien angezeigt werden, welche mindestens eine bestimmte Grösse aufweisen, so kann dafür die -hs Option verwendet werden. Mit der -f Option werden nur Dateien überprüft, allfällige Subverzeichnisse werden nicht berücksichtigt:

# durep -f /home/test -hs 100m
[ /usr/home/test     2.3G (599 files, 0 dirs) ]
   1.6G [#####################         ]  71.58% test.tar.gz
 250.3M [###                           ]  10.80% test2

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

Comments (1)  Permalink

Aktuelle sendmail-Aliase anzeigen

Mit Hilfe von Aliasen lassen sich im sendmail-Daemon Mailweiterleitungen einrichten. Dabei werden die Aliase in der Datei /etc/mail/aliases konfiguriert und mit Hilfe von newaliases(1) die /etc/mail/aliases.db Datenbank erstellt, aus welcher die Aliase vom sendmail-Daemon ausgelesen werden.

# newaliases 
/etc/mail/aliases: 28 aliases, longest 35 bytes, 314 bytes total

Möchte man den Inhalt der aliases.db auslesen, falls z.B. die aliases-Datei nicht mehr vorhanden ist, kann praliases aufgerufen werden, wodurch die aktuelle Aliases-Konfiguration angezeigt wird:

# praliases 
root:admin1@example.org,admin2@example.org
beat:beat@example.org
postmaster:root
hostmaster:root
abuse:root
[...]

Im FreeBSD und OpenBSD Basissystem ist praliases bereits vorhanden. Mehr Informationen zu paraliases findet man in der Manpage praliases(8).

 Permalink

Informationen zu einem UFS-Dateisystem anzeigen

Möchte man herausfinden, mit welchen newfs-Optionen ein UFS-Dateisystem angelegt wurde, so kann die -m Option von dumpfs verwendet werden:

# dumpfs -m /tmp
newfs command for /tmp (/dev/ad4s3e)
newfs -O 2 -U -a 8 -b 16384 -d 16384 -e 2048 -f 2048 -g 16384 -h 64 -m 8 -o time -s 262144 /dev/ad4s3e

Ruft man dumpfs ohne Optionen auf, werden ausführliche Informationen zu allen Zylindergruppen und zum Superblock angezeigt. Im FreeBSD Basissystem ist dumpfs bereits enthalten. Mehr Informationen zu dumpfs findet man in der Manpage dumpfs(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

Änderungen eines Patches übersichtlich darstellen

Mit Hilfe von diffstat lassen sich die Änderungen eines Patches übersichtlich darstellen. Im FreeBSD Portbaum findet man diffstat unter textproc/diffstat:

# cd /usr/ports/textproc/diffstat && make install clean

Nun kann diffstat aufgerufen werden, wobei die Informationen zum Patch dargestellt werden. So wird zum Beispiel die Anzahl Änderungen pro Datei angezeigt und ein Histogramm zeigt an, wie die Anzahl der hinzugefügten und entfernten Zeilen verteilt sind.

# diffstat logfile_markup.patch
 Makefile                                        |   27 +--
 sql/genschema                                   |    4 
 sql/schema.mysql.pre                            |    9 +
 sql/schema.pgsql.pre                            |    9 +
 sql/values.lp                                   |   22 +++
 webui/core/LogfilePattern.php                   |   67 +++++++++
 webui/core/PortFailPattern.php                  |   62 ++++++++
 webui/core/TinderboxDS.php                      |   24 +++
 webui/index.php                                 |   14 +
 webui/module/moduleLogs.php                     |  174 ++++++++++++++++++++++++
 webui/module/modulePorts.php                    |    3 
 webui/templates/default/describe_port.tpl       |    1 
 webui/templates/default/display_markup_log.tpl  |  162 ++++++++++++++++++++++
 webui/templates/default/failed_buildports.tpl   |    1 
 webui/templates/default/latest_buildports.tpl   |    1 
 webui/templates/default/list_buildports.tpl     |    1 
 webui/templates/default/tinderstyle.css         |    3 
 webui/templates/paefchen/describe_port.tpl      |    1 
 webui/templates/paefchen/display_markup_log.tpl |  156 +++++++++++++++++++++
 webui/templates/paefchen/failed_buildports.tpl  |    3 
 webui/templates/paefchen/latest_buildports.tpl  |    1 
 webui/templates/paefchen/list_buildports.tpl    |    1 
 webui/templates/paefchen/tinderstyle.css        |    9 +
 23 files changed, 739 insertions(+), 16 deletions(-)

Soll anstelle des Histogramms die Anzahl hinzugefügter, entfernter oder geänderter Zeilen angezeigt werden, so kann die -f 0 Option verwendent werden:

# diffstat -f 0 mem_info.patch 
 core/functions.php                  |    7     7 +     0 -     0 !
 inc_tinderbox.php.dist              |    1     1 +     0 -     0 !
 module/moduleBuildPorts.php         |   33     30 +    3 -     0 !
 module/moduleLogs.php               |   12     11 +    1 -     0 !
 module/modulePortFailureReasons.php |   11     10 +    1 -     0 !
 module/modulePorts.php              |   11     10 +    1 -     0 !
 templates/paefchen/footer.inc.tpl   |    1     1 +     0 -     0 !
 7 files changed, 70 insertions(+), 6 deletions(-)

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

 Permalink

An- und Abmelden von Benutzern beobachten

Mit Hilfe von wuzzah kann beobachtet werden, wann sich Benutzer an einem System an- und wieder abmelden. Im FreeBSD Portbaum findet man wuzzah unter sysutils/wuzzah:

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

wuzzah kann mit der -a Option gestartet werden, wonach man sofort alle angemeldeten Benutzer sieht. Meldet sich nun ein Benutzer an oder ab, so wird dies sofort angezeigt:

# wuzzah -a
(20:13:07)  beat logged on  :0       from hostname
(21:27:05)  beat logged on  ttyp4    from hostname
(21:42:55)  beat logged on  ttyp3    from hostname
(22:04:07)  beat logged on  ttyp2    from hostname
(22:49:13)  beat logged on  ttyp1    from hostname
(22:47:13)  test logged on  ttyp5    from hostname
(23:17:16)  test logged off ttyp5    from hostname

Möchte man nur bestimmte Benutzer beobachten, kann dazu die Datei ~/.wuzzah angelegt werden und jeder Benutzername, der beobachtet werden soll, in einer eigenen Zeile aufgeführt werden. Nun kann wuzzah ohne eine Option aufgerufen werden, wobei man nur noch die gewählten Benutzer sieht:

# who
beat             ttyp1    12 Dez 19:32 (:0.0)
beat             ttyp2    12 Dez 20:27 (:0.0)
test             ttyp4    12 Dez 21:35 (:0.0)
# cat ~/.wuzzah
test
guest
# wuzzah
(23:21:11)  test logged on  ttyp4    from hostname

Durch das Drücken von Ctrl+C wird wuzzah beendet. Mehr Informationen zu wuzzah findet man in der Manpage wuzzah(1).

 Permalink

Fehlende Shared-Libraries identifizieren

Mit Hilfe von libchk können Programme identifiziert werden, die gegen Shared-Libraries gelinkt sind, welche jedoch nicht mehr existieren. Im FreeBSD Portbaum findet man libchk unter sysutlis/libchk:

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

Standardmässig durchsucht libchk zur Zeit auch noch Verzeichnisse unter dem Verzeichnis /usr/X11R6, welches auf neueren Systemen nach /usr/local gelinkt ist. Dies kann mit der -x Option ausgeschlossen werden. Führt man libchk nun aus, werden alle Programme angezeigt, bei welchen Shared-Libraries fehlen. Auch werden dabei alle Shared-Libraries aufgelistet, welche von keinem Programm benötigt werden. Jedoch sollten diese nicht einfach deinstalliert werden ohne dass vorher genau überprüft wird, dass diese wirklich nicht mehr gebraucht werden.

# libchk -x /usr/X11R6
Will look into:
        /bin
        /lib
        /sbin
        /usr/bin
        /usr/games
        /usr/lib
        /usr/libexec
        /usr/local/bin
        /usr/local/lib
        /usr/local/libexec
        /usr/local/sbin
        /usr/sbin
Unresolvable link(s) found in: /usr/lib/libssh.so.3
        libasn1.so.8
        libroken.so.8
        libkrb5.so.8
Unresolvable link(s) found in: /usr/local/bin/mutt
        libasn1.so.8
        libroken.so.8
        libkrb5.so.8
Unreferenced library: /usr/local/lib/gcc-4.2.3/libffi.so.4
Unreferenced library: /usr/local/lib/gcc-4.2.3/libgfortran.so.2
Unreferenced library: /usr/local/lib/gcc-4.2.3/libgomp.so.1
Unreferenced library: /usr/local/lib/gcc-4.2.3/libmudflap.so.0
Unreferenced library: /usr/local/lib/gcc-4.2.3/libmudflapth.so.0
Unreferenced library: /usr/local/lib/gcc-4.2.3/libobjc.so.2
Unreferenced library: /usr/local/lib/gcc/i386-portbld-freebsd7.1/3.4.6/libg2c.so.0

Das Fehlen der Shared-Libraries kann danach mit ldd(1) verifiziert werden und diese können danach gegebenenfalls wieder installiert werden:

# ldd /usr/local/bin/mutt
/usr/local/bin/mutt:
        libncursesw.so.5.6 => /usr/local/lib/libncursesw.so.5.6 (0x2810b000)
        libgssapi.so.8 => /usr/lib/libgssapi.so.8 (0x28130000)
        libkrb5.so.8 => not found (0x0)
        libasn1.so.8 => not found (0x0)
        libcrypto.so.4 => /lib/libcrypto.so.4 (0x28147000)
        libroken.so.8 => not found (0x0)
        libcrypt.so.3 => /lib/libcrypt.so.3 (0x2823f000)
        libcom_err.so.3 => /usr/lib/libcom_err.so.3 (0x28258000)
        libssl.so.4 => /usr/lib/libssl.so.4 (0x2825a000)
        libz.so.3 => /lib/libz.so.3 (0x28289000)
        libintl.so.8 => /usr/local/lib/libintl.so.8 (0x2829a000)
        libiconv.so.3 => /usr/local/lib/libiconv.so.3 (0x282a3000)
        libc.so.6 => /lib/libc.so.6 (0x28398000)
        libtinfow.so.5.6 => /usr/local/lib/libtinfow.so.5.6 (0x2847a000)

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

Comments (1)  Permalink

Inhalt eines ISO-Images auslesen

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).

Comments (3)  Permalink
Prev Next151-160/325