BlogBlog ÜbersichtjailscriptportsoptFreeBSDLinksThermoskanne

JPEG-Dateien auf Fehler überprüfen

Mit Hilfe von jpeginfo können JPEG-Dateien auf Fehler überprüft werden. Im FreeBSD Portbaum findet man jpeginfo unter graphics/jpeginfo:

# cd /usr/ports/graphics/jpeginfo && make install clean

Ruft man jpeginfo ohne Optionen auf, werden verschiedene Informationen zum Bild, wie zum Beispiel die Grösse, angezeigt. Durch die -l Option werden diese Informationen in Spalten gruppiert. Mit der -c Option werden die Bilder auf Fehler überprüft. Sollen defekte Dateien gleich gelöscht werden, kann die -d Option verwendet werden:

# jpeginfo -cl *.jpg
1280 x 1024 24bit Exif  N  247303 1.jpg  [OK]
 100 x 75   24bit Exif  N    2050 2.jpg  [OK]
1704 x 2272 24bit Exif  N 1204099 3.jpg  Corrupt JPEG data: 68 extraneous bytes before marker 0xdb  [WARNING]
  69 x 100  24bit Exif  N    3419 4.jpg  [OK]
  80 x 60   24bit Exif  N    1499 5.jpg  [OK]
1366 x 768  24bit JFIF  N  115880 6.jpg  [OK]
1000 x 756  24bit Exif  N  111401 7.jpg  Corrupt JPEG data: 2 extraneous bytes before marker 0xd9  [WARNING]
1000 x 756  24bit Exif  N  105140 8.jpg  [OK]
  77 x 30   24bit JFIF  N     964 9.jpg  [OK]

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

 Permalink

Wörter zweier Dateien vergleichen

Mit Hilfe von dwdiff können zwei Datei verglichen werden und es werden die geänderten, gelöschten oder hinzugefügten Wörter angezeigt. Im FreeBSD Portbaum findet man dwdiff unter textproc/dwdiff:

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

Nun können die beiden zu vergleichenden Dateien an dwdiff übergeben werden. Gelöschte Wörter werden durh [-<Wort>-], hinzugefügte Wörter durch {+<Wort>+} gekennzeichnet:

# cat datei1 
das ist eine test datei
das ist die erste linie
das ist die zweite linie
das ist die dritten linie
# cat datei2
das ist eine test datei
das ist die eine linie
das ist noch die zweite linie
das war eine linie
# dwdiff datei1 datei2 
das ist eine test datei
das ist die [-erste-] {+eine+} linie
das ist {+noch+} die zweite linie
das [-ist die dritten-] {+war eine+} linie

Mit der -s Option werden Statistiken zu den beiden Dateien angezeigt:

# dwdiff -s datei1 datei2
das ist eine test datei
das ist die [-erste-] {+eine+} linie
das ist {+noch+} die zweite linie
das [-ist die dritten-] {+war eine+} linie
alt: 20 Wörter  16 80% gemeinsam  0 0% gelöscht  4 20% geändert
neu: 20 Wörter  16 80% gleich  1 5% eingefügt  3 15% geändert

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

 Permalink

Befehl mit unterschiedlichen Parametern mehrmals ausführen

Manche Programme lassen sich nicht mit mehreren Parameter ausführen:

# atacontrol status ar0 ar1
usage:  atacontrol <command> args:
        atacontrol list
        atacontrol info channel
        atacontrol attach channel
        atacontrol detach channel
        atacontrol reinit channel
        atacontrol create type [interleave] disk0 ... diskN
        atacontrol delete array
        atacontrol addspare array disk
        atacontrol rebuild array
        atacontrol status array
        atacontrol mode device [mode]
        atacontrol cap device
        atacontrol spindown device [seconds]

Dies kann mit Hilfe von apply umgangen werden. Im folgenden Beispiel wird zuerst der RAID-Status von ar0, danach von ar1 abgefragt. Durch die -d Option wird nur angezeigt was ausgeführt würde, ohne die Befehle auszuführen:

# apply -d "atacontrol status %1" ar0 ar1
exec atacontrol status ar0
exec atacontrol status ar1
# apply "atacontrol status %1" ar0 ar1
ar0: ATA RAID1 status: READY
 subdisks:
   0 ad4  ONLINE
   1 ad6  ONLINE
ar1: ATA RAID1 status: READY
 subdisks:
   0 ad5  ONLINE
   1 ad7  ONLINE

Im folgenden Beispiel wird mit der -2 Option angegeben, dass jeweils zwei Parameter aus der Liste zusammen ausgeführt werden.

# apply -d -2 cmp a1 b1 a2 b2 a3 b3
exec cmp a1 b1
exec cmp a2 b2
exec cmp a3 b3
# apply -2 cmp a1 b1 a2 b2 a3 b3
a1 b1 differ: char 1, line 1
a2 b2 differ: char 1, line 1
a3 b3 differ: char 1, line 1

Auf FreeBSD ist apply standardmässig im Basissystem vorhanden. Mehr Informationen zu apply findet man in der Manpage apply(1).

 Permalink

Root-Partition im Single User Mode beschreibbar machen

Startet man ein FreeBSD-System im Single User Mode, so ist die root-Partition nur lesend ins System eingebunden. Möchte man die root-Parition nun beschreibbar ins System einbinden, so können dazu die -u und die -w Optionen von mount verwendet werden:

# mount 
/dev/ad0s1a on / (ufs, local, read-only)
devfs on /dev (devfs, local, multilabel)
# echo test > /test
cannot create /test: Read.only file system
# mount -uw /
# mount
/dev/ad0s1a on / (ufs, local)
devfs on /dev (devfs, local, multilabel)
# echo test > /test
# cat /test
test

Mehr Informationen findet man in der Manpage mount(8).

 Permalink

pf-Logdatei auslesen

Benutzt man die pf-Firewall so können zum Beispiel alle geblockte Pakete aufgezeichet werden. Dazu muss auf FreeBSD der pf-Log-Mechanismus in der /etc/rc.conf aktiviert werden:

pflog_enable="YES"

Regeln in der pf-Konfiguration, die das Schlüsselwort log enthalten, zeichnen nun die Pakete auf, welche auf die Regel zutreffen:

block log all

Die Logdatei kann nun mit Hilfe von tcpdump(1) ausgelesen werden:

# tcpdump -n -e -ttt -r /var/log/pflog

Auch können die aufgezeichneten Pakete in Echtzeit betrachtet werden:

# tcpdump -n -e -ttt -i pflog0

Mehr Informationen findet man in der Manpage pflogd(8).

Comments (3)  Permalink

Superpages auf FreeBSD verwenden

Seit FreeBSD 7.2 können auf den Plattformen i386 und amd64 Superpages aktiviert werden. Dadurch kann FreeBSD mit grossen Seiten im virtuellen Speicher umgehen, was vor allem auf neueren Mehrkern-Prozessoren zu Leistungssteigerungen führen kann. Möchte man die Superpages aktivieren, fügt man folgende Zeile in der /boot/loader.conf ein und startet danach das System neu:

vm.pmap.pg_ps_enabled=1
Comments (1)  Permalink

Programm vom steuernden Terminal abkoppeln

Mit Hilfe von dtach lässt sich wie mit screen und tmux ein Programm vom steuernden Terminal abkoppeln. So kann das Programm weiterhin im Hintergrund laufen. Später kann man sich wieder mit dem Programm verbinden. Im Gegensatz zu screen oder tmux zeichnet dtach die Ausgabe des Programmes im Hintergrund nicht auf, die Programmgrösse ist dafür um einiges kleiner. Daher sollte man zum Beispiel die Ausgabe mit Hilfe von tee(1) in eine Datei schreiben oder ein Programm verwendet, welches regelmässig seine Ausgabe aktualisiert. Im FreeBSD Portbaum findet man dtach unter misc/dtach:

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

Im folgenden Beispiel wird eine tcsh gestartet und unter /tmp/tcshsock ein Socket erstellt, mit welchem man sich später wieder verbinden kann.

# dtach -c /tmp/tcshsock tcsh

Möchte man nun die Shell vom Terminal abkoppeln, drückt man Ctrl + \ und die Shell sowie alle darin gestarteten Programme laufen im Hintergrund weiter. Möchte man sich nun wieder mit dem Programm verbinden, verwendet man die -a Option und den entsprechenden Socket:

# dtach -a /tmp/tcshsock

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

 Permalink

Ports im FreeBSD Portbaum suchen

Mit Hilfe von pkg_search kann im FreeBSD Portbaum nach Ports gesucht werden. Im Portbaum findet man pkg_serch unter ports-mgmt/pkg_search:

# cd /usr/ports/ports-mgmt/pkg_search && make install clean

Nun kann mit pkg_search nach einem Schlüsselwort gesucht werden:

# pkg_search ports
jasperreports-3.0.0_1   JasperReports is a powerful open source Java reporting tool
p5-UNIVERSAL-exports-0.05       Lightweight, universal exporting of variables
nagios-check_ports-0.6.1        Nagios Plugin to monitor your FreeBSD Ports
kports-0.6.1_5          KDE3-Version of your favorite frontend to the Ports
kports-0.8.1_1          Qt4-Version of your favorite frontend to the Ports
portscout-0.7.4_2       A tool to scan for new versions of FreeBSD ports
portsearch-1.3.2        Port searching tool that supports search by packing list files
portsman-0.2_2          An ncurses based front-end to manage the FreeBSD ports collection
portsopt-1.4            Shows WITH(OUT)-knobs of a port makefile
symports-1.0            Automatically generate symlinks for virtual categories
gtkportscan-1.2_4       A simple port scanner that prints out open ports
portscanner-1.2_1       A simple and easy to use TCP port scanner
portsentry-1.2          Port scan detection and active defense

Sollen zusätzliche Informationen wie die URL des Ports in die Suche aufgenommen werden, kann die -k Option verwedent werden:

# pkg_search -k firefox
de-bsdforen-firefox-searchplugin-0.3_2  Firefox searchplugins for the www.bsdforen.de board and wiki
de-bsdgroup-firefox-searchplugin-0.2_3  Firefox searchplugins for the www.BSDGroup.de board
firefox-2.0.0.20_9,1    Web browser based on the browser portion of Mozilla
firefox-i18n-2.0.0.20   Localized interface for Firefox
firefox-remote-20040803_3       Wrapper scripts for firefox web browser
firefox-3.0.14,1        Web browser based on the browser portion of Mozilla
firefox-3.5.r3,1        Web browser based on the browser portion of Mozilla
firefox3-i18n-3.0.13    Localized interface for Firefox3
firefox-3.5.3,1         Web browser based on the browser portion of Mozilla
firefox35-i18n-3.5.3    Localized interface for Firefox3.5
linux-firefox-3.0.14,1  Web browser based on the browser portion of Mozilla
linux-firefox-devel-3.0.b2_1    Web browser based on the browser portion of Mozilla
conkeror-20090821       A completely keyboard driven browser based on firefox
xpi-firefox-showcase-0.9.5      Easily locate and select any open browser window
xpi-firefoxonwooztalk-0.9.9,1   Meet your World Wide Web neighbors with Firefox
xpi-live_http_headers-0.15      A firefox extension to view HTTP headers
xpi-modify_headers-0.6.6        A firefox extension to manipulate HTTP headers
xpi-twitterfox-1.8.3    twitterFox firefox plugin.

Möchte man angezeigen in welchem Verzeichnis sich der Port befindet, verwendet man die -r Option:

# pkg_search -r firefox 
de-bsdforen-firefox-searchplugin-0.3_2  /usr/ports/german/bsdforen-firefox-searchplugin
de-bsdgroup-firefox-searchplugin-0.2_3  /usr/ports/german/bsdgroup-firefox-searchplugin
firefox-2.0.0.20_9,1    /usr/ports/www/firefox   
firefox-i18n-2.0.0.20   /usr/ports/www/firefox-i18n
firefox-remote-20040803_3       /usr/ports/www/firefox-remote
firefox-3.0.14,1        /usr/ports/www/firefox3  
firefox-3.5.r3,1        /usr/ports/www/firefox3-devel
firefox3-i18n-3.0.13    /usr/ports/www/firefox3-i18n
firefox-3.5.3,1         /usr/ports/www/firefox35 
firefox35-i18n-3.5.3    /usr/ports/www/firefox35-i18n
linux-firefox-3.0.14,1  /usr/ports/www/linux-firefox
linux-firefox-devel-3.0.b2_1    /usr/ports/www/linux-firefox-devel
xpi-firefox-showcase-0.9.5      /usr/ports/www/xpi-firefox-showcase
xpi-firefoxonwooztalk-0.9.9,1   /usr/ports/www/xpi-firefoxonwooztalk

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

 Permalink

Netzwerkdurchsatz graphisch darstellen

Möchte man den Netzwerkdurchsatz in der Konsole graphisch darstellen, so kann man dazu nload verwenden. Im FreeBSD Portbaum findet man nload unter net/nload:

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

Beim Starten von nload muss nun die Netzwerkschnittstelle angegeben werden, welche beobachtet werden soll:

# nload <Netzwerkschnittstelle>

Danach wird der aktuelle Durchsatz der Schnittstelle regelmässig angezeigt:

Device wlan0 [192.168.2.40] (1/1):
========================================================================================
Incoming:





                     .                 ..                ..
                  . .#. |#            ###               .##|||
                  ########.           ###              .######.
                  #########          .###|             ########
                  #########          #####            .########
                 |#########          #####            #########    #
                 ##########          #####            #########    #
                 ##########     .    #####            #########  . #  Curr: 4.16 MBit/s
                .###########    #.  ######        .  ##########..# #  Avg: 3.03 MBit/s
               .############    ##  #######       #| ###############  Min: 0.00 Bit/s
               #############    ## |#######       ## ###############  Max: 6.78 MBit/s
              |############# .|###.########   || |##################  Ttl: 113.89 MByte
Outgoing:

             ..                                                  ..
            .##|||       #                                      .##.
           .######.     ##      .|...|              .|||||#.  ######
           ########     ##    ########|.#.         |######## .######
          .########     ##    ############         #########|#######
          #########    ###   ##############       |#################
          #########    ###   ##############|..|. .##################
          #########  . ####  #######################################  Curr: 6.26 MBit/s
      .  ##########..# ####||#######################################  Avg: 3.80 MBit/s
      #| ###########################################################  Min: 0.00 Bit/s
      ## ###########################################################  Max: 6.83 MBit/s
  || |##############################################################  Ttl: 68.67 MByte

Möchte man mehrere Schnittstellen gleichzeitig beobachten, so kann dazu die -m Option verwendet werden, allerdings werden dann die Graphen nicht mehr dargestellt:

# nload -m wlan0 em 0
Device wlan0 [192.168.2.40] (1/2):
==================================================================
Incoming:    Curr: 1.14 kBit/s                    Curr: 0.41 Bit/s
Avg: 1.05 kBit/s                                  Avg: 0.27 Bit/s
Min: 0.45 Bit/s                                   in: 0.00 Bit/s
Max: 1.14 kBit/s                                  Max: 0.41 Bit/s
Ttl: 3.12 MByte                                   Ttl: 349.97 kByte

Device em0 [10.0.0.1] (2/2):
===================================================================
Incoming:                                         Outgoing:
Curr: 1.03 kBit/s                                 Curr: 0.34 Bit/s
Avg: 0.78 Bit/s                                   Avg: 0.43 Bit/s
Min: 0.23 Bit/s                                   Min: 0.11 Bit/s
Max: 2.03 kBit/s                                  Max: 0.98 Bit/s
Ttl: 5.01 MByte                                   Ttl: 234.07 kByte

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

 Permalink

Installierte Ports auf aktualisierte Versionen überprüfen

Mit Hilfe von pver werden alle installierten Ports mit dem Portindex verglichen und jene Ports aufgelistet von welchen eine neuere Version im Portbaum vorhanden ist. Im FreeBSD Portbaum findet man pver unter ports-mgmt/pver:

# cd /usr/ports/ports-mgmt/pver && make install clean

Zuerst muss vom aktuellen Portindex mit Hife von pver_dbgen eine Datenbank erstellt werden:

# pver_dbgen

Ist die Datenbank angelegt, können die installierten Ports mit der Index-Datenbank verglichen werden. In der zweiten Spalte wird die Version des installierten Ports, in der dritten Spalte die Version welche im Index vorhanden ist angezeigt:

# pver
portmaster                              2.10                    2.11
libxml2                                 2.7.3                   2.7.3_1
glib                                    2.20.4                  2.20.5
compat5x-i386                           5.4.0.8_9               5.4.0.8_11
gtk                                     2.16.5_1                2.16.6
pptpclient                              1.7.2                   1.7.2_2
help2man                                1.36.4_2                1.36.4_3
pinentry                                0.7.6                   0.7.6_1
subversion-freebsd                      1.6.4                   1.6.5
diablo-jdk                              1.6.0.07.02_3           1.6.0.07.02_5
firefox-3.6.a1,1                        is not in /usr/ports/INDEX
pulseaudio                              0.9.14_5                0.9.15_4
compat6x-i386                           6.4.604000.200810       6.4.604000.200810_3
opera-devel                             10.00.b2_1,1            10.00.b3_1,1
fortune-mod-hitchhiker-20050611         is not in /usr/ports/INDEX
libxul                                  1.9.0.11_1              1.9.0.13
smartmontools                           5.38_6                  5.38_7
pdfjam                                  1.21_1                  1.21_2
Comments (1)  Permalink
Prev Next161-170/521