BlogBlog ÜbersichtjailscriptportsoptFreeBSDLinksThermoskanne

Zeitzonen-Einstellung änden

Möchte man die aktuelle Zeitzone seines Rechners ändern, so kann dies mit tzsetup gemacht werden. Die angegebene Zeitzone muss dabei unter /usr/share/zoneinfo existieren:

# date
Sa  1 Jan 2011 18:39:15 CET
# tzsetup Australia/Sydney
# date
So  2 Jan 2011 04:39:24 EST

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

 Permalink

Wörter von zwei Dateien vergleichen

Mit Hilfe von wdiff lassen sich die einzelnen Wörter von zwei Dateien vergleichen. Im FreeBSD-Portbaum findet man wdiff unter textproc/wdiff:

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

Werden nun zwei Dateien mit wdiff verglichen, wird angezeigt welche Wörter hinzugekommen und welche entfernt wurden:

# cat datei1
I like FreeBSD.
# cat datei2
I love FreeBSD.
http://www.FreeBSD.org/
# wdiff datei1 datei2
I [-like-] {+love+} FreeBSD.
{+http://www.FreeBSD.org/+}

Mit der -s Option wird zusätzlich eine Statistik über die Veränderungen angezeigt:

# wdiff -s datei1 datei2
I [-like-] {+love+} FreeBSD.
{+http://www.FreeBSD.org/+}
datei1: 3 words  2 66% common  0 0% deleted  1 33% changed
datei2: 4 words  2 50% common  1 25% inserted  1 25% changed

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

 Permalink

PDF-Dateien durchsuchen

Mit Hilfe von pdfgrep kann eine PDF-Datei wie mit grep(1) durchsucht werden. Im FreeBSD-Portbaum findet man pdfgrep unter textproc/pdfgrep:

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

Nun kann die PDF-Datei nach Wörtern oder regulären Ausdrücken durchsucht werden und alle Zeilen welche den Suchbegriff beinhalten werden ausgegeben:

# pdfgrep "zpool upgrade" zfsadmin.pdf
Upgrading ZFS Storage Pools (zpool upgrade) .............21
Upgrading ZFS Storage Pools (zpool upgrade)
Upgrading ZFS Storage Pools (zpool upgrade)
version to take advantage of the latest features by using the zpool upgrade command. In
you can upgrade your pools with the zpool upgrade command to take advantage of the pool
action: Upgrade the pool using âzpool upgradeâ. Once this is done, the
# zpool upgrade -v
Then, you can run the zpool upgrade command to upgrade your pools. For example:
# zpool upgrade -a
zpool upgrade, 78

Mit der -n Option wird die Seitezahl angezeigt auf welcher Seite im Dokument man die angezeigte Zeile findet:

# pdfgrep -n "zpool upgrade" zfsadmin.pdf 
3: Upgrading ZFS Storage Pools (zpool upgrade) .............21
13: Upgrading ZFS Storage Pools (zpool upgrade)
21: Upgrading ZFS Storage Pools (zpool upgrade)
21: version to take advantage of the latest features by using the zpool upgrade command. In
78: you can upgrade your pools with the zpool upgrade command to take advantage of the pool
78: action: Upgrade the pool using âzpool upgradeâ. Once this is done, the
78: # zpool upgrade -v
79: Then, you can run the zpool upgrade command to upgrade your pools. For example:
79: # zpool upgrade -a
192: zpool upgrade, 78

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

Comments (2)  Permalink

Mehrere Dateien zeilenweise zusammenführen

Mit Hilfe von lam lassen sich die Zeilen von mehreren Dateien zusammenführen. Im folgenden Beispiel werden drei verschiedene Dateien verwendet:

# cat datei1 
1
2
3
4
5
# cat datei2
a
b
c
d
e
# cat datei3
z
y
x
w
v

Nun lassen sich mit lam die jeweiligen Zeilen zusammenführen:

# lam datei1 datei2 datei3
1az
2by
3cx
4dw
5ev

Mit der -S Option kann ein Trennzeichen definiert werden, welches zwischen die Zeilen der verschiedenen Dateien dargestellt wird:

# lam datei1 -S " " datei2 datei3
1 a z
2 b y
3 c x
4 d w
5 e v
# lam datei1 -S "\
" datei2 datei3
1
a
z
2
b
y
3
c
x
4
d
w
5
e
v

Auch lassen sich jeweils zwei Zeilen einer einzelnen Datei zu einer verbinden:

# lam - - < datei1 
12
34
5

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

Comments (2)  Permalink

Informationen über Systembenutzer anzeigen

Mit Hilfe von logins lassen sich Informationen über lokale Systembenutzer auslesen. Mit der -d Option kann herausgefunden werden welche Benutzer identische Benutzer-IDs haben:

# logins -d
root            0       wheel           0       Charlie &
toor            0       wheel           0       Bourne-again Superuser

Möchte man auslesen, welche Benutzer der gleichen Gruppen angehören, so kann die -g Option verwerdet werden:

# logins -g wheel
root            0       wheel           0       Charlie &
beat            1001    users           1001    Beat Gätzi

Informationen über einen Benutzer erhält man mit der -l Option:

# logins -l beat
beat            1001    users           1001    Beat Gätzi

Für Informationen über die sekundären Gruppen der Benutzer verwendet man die -m Option. Durch die -t Option wird die Ausgabe nicht nach der Benutzer-ID sondern nach dem Benutzernamen sortiert:

# logins -m -t
_dhcp           65      _dhcp           65      dhcp programs
_pflogd         64      _pflogd         64      pflogd privsep user
avahi           558     avahi           558     Avahi Daemon User
beat            1001    users           1001    Beat Gätzi
                        wheel           0      
                        vboxusers       920    
bin             3       bin             7       Binaries Commands and Source
bind            53      bind            53      Bind Sandbox
clamav          106     clamav          106     Clam Antivirus
                        mail            6      
daemon          1       daemon          1       Owner of many system processes
games           7       games           13      Games pseudo-user
haldaemon       560     haldaemon       560     HAL Daemon User
kmem            5       nogroup         65533   KMem Sandbox
mailnull        26      mailnull        26      Sendmail Default User
man             9       man             9       Mister Man Pages
messagebus      556     messagebus      556     D-BUS Daemon User
minbif          926     minbif          926     Minbif Daemon User
news            8       news            8       News Subsystem
nobody          65534   nobody          65534   Unprivileged user
operator        2       operator        5       System &
polkit          562     polkit          562     PolicyKit Daemon User
pop             68      mail            6       Post Office Owner
proxy           62      proxy           62      Packet Filter pseudo-user
pulse           563     pulse           563     PulseAudio System User
root            0       wheel           0       Charlie &
                        operator        5      
smmsp           25      smmsp           25      Sendmail Submission User
sshd            22      sshd            22      Secure Shell Daemon
test            1002    test            1002    Testbenutzer
toor            0       wheel           0       Bourne-again Superuser
tty             4       nogroup         65533   Tty Sandbox
uucp            66      uucp            66      UUCP pseudo-user
www             80      www             80      World Wide Web Owner

Informationen über das home-Verzeichnis und die verwendete Shell erhält man mit der -x Option. Verwendet man die -u Option werden keine Systembenutzer angezeigt:

# logins -x -u
beat            1001    users           1001    Beat Gätzi
                        /home/beat
                        /bin/csh
test            1002    test            1002    Testbenutzer
                        /home/test
                        /bin/tcsh

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

 Permalink

Terminkalender für die Kommandozeile

Mit Hilfe von when lassen sich Termine auf der Kommandozeile verwalten. Im FreeBSD -Portbaum findet man when unter deskutils/when:

# cd /usr/ports/deskutils/when && make install clean

Ruft man when das erste Mal auf, werden die benötigten Dateien angelegt und der Standard-Editor festgelegt:

# when 
You can now set up your calendar. This involves creating a directory ~/.when, and making
a couple of files in it. If you want to do this, type y and hit return.
y
You can edit your calendar file using your favorite editor. Please enter the command you
want to use to run your editor, or hit return to accept this default:
  emacs -nw
nvi
You can now add items to your calendar file. Do ``when --help'' for more information.
Sat 2010 Nov 27   4:03

Starten man when mit der e Option, wird ein Editor gestartet und die Termine können eingtragen werden. Neben einmaligen Terminen lassen sich auch wiederkehrende Eintrage anlegen:

# when e
2010 nov 27 , Essen bei xyz 18:00
2010 nov 28 , Match 17:00
w=th , Training 20:30

Wird nun when nochmals aufgerufen, werden die Termine der nächsten zwei Wochen angezeigt:

# when 
Sat 2010 Nov 27   4:07

today      2010 Nov 27 Essen bei xyz 18:00
tomorrow   2010 Nov 28 Match 17:00
Thu        2010 Dec  2 Training 20:30
Thu        2010 Dec  9 Training 20:30

Mit der w Option lassen sich nur Termine der kommenden Woche anzeigen:

# when w
Sat 2010 Nov 27   4:10

today      2010 Nov 27 Essen bei xyz 18:00
tomorrow   2010 Nov 28 Match 17:00
Thu        2010 Dec  2 Training 20:30

Verwendet man die c Option wird der Kalender des aktuellen, des letzen und des kommenden Monats dargestellt:

# when c
-------October-------  ------November-------  ------December-------
 S  M  T  W  T  F  S    S  M  T  W  T  F  S    S  M  T  W  T  F  S 
                1  2       1  2  3  4  5  6             1  2  3  4 
 3  4  5  6  7  8  9    7  8  9 10 11 12 13    5  6  7  8  9 10 11 
10 11 12 13 14 15 16   14 15 16 17 18 19 20   12 13 14 15 16 17 18 
17 18 19 20 21 22 23   21 22 23 24 25 26 27   19 20 21 22 23 24 25 
24 25 26 27 28 29 30   28 29 30               26 27 28 29 30 31 

Mehr Informationen zu when findet man in der Manpage when(1). Vielen Dank an Lars für den Tip.

 Permalink

Apache Statistiken in der Konsole betrachten

Mit Hilfe von goaccess kann eine Apache-Logdatei eingelesen und die entsprechenden Statistiken angezeigt werden. Im FreeBSD-Portbaum findet man goaccess unter sysutils/goaccess:

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

Mit der -f Option wird der Pfad zur Apache-Logdatei angegeben, danach werden die Statistiken erstellt und angezeigt:

# goaccess -f /var/log/httpd-access.log
General Statistics - Information analyzed from log file - Unique totals                                                                                                                                                                                   [Active Module 1]

  Total Requests  1527869   Total Unique Visitors 1764    Total Referrers  163    Log  280.69 MB
  Failed Requests 0         Total Unique Files    40269   Total Unique 404 41107  BW   N/A
  Generation Time 22 sec    Total Static Files    1732    /var/log/httpd-access.log

 1 - Unique visitors per day - Including spiders
 HTTP requests having the same IP, same date and same agent will be considered a unique visit

  2       0.11%   20/Nov/2010      ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
  5       0.28%   19/Nov/2010      ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
  7       0.40%   18/Nov/2010      ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
  4       0.23%   17/Nov/2010      |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
  6       0.34%   16/Nov/2010      |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
  3       0.17%   15/Nov/2010      |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||

 2 - Requested files (Pages-URL)
 Top 6 different files requested sorted by requests - percent - [bandwidth]

  401306  26.27%  /server-status?auto
  201017  13.16%  /tinderbox/index.php
  190187  12.45%  /tb/index.php?action=latest_buildports
  110549  7.24%   /tb/index.php?action=latest_buildports_rss
  2467    0.16%   /tb/index.php
  880     0.06%   /tb/index.php?action=list_tinderd_queue

 3 - Requested static files - (Static content: png,js,etc)
 Top 6 different static files requested, sorted by requests - percent - [bandwidth]

  189031  12.37%  /tb/templates/paefchen/tinderstyle.css
  188987  12.37%  /tb/templates/paefchen/images/hdr_fill.png
  188958  12.37%  /tb/templates/paefchen/tinderstyle.js
  459     0.03%   /favicon.ico
  404     0.03%   //templates/paefchen/tinderstyle.js
  402     0.03%   //templates/paefchen/images/hdr_fill.png

 4 - Referrers URLs
 Top 6 different referrers sorted by requests

  726258  47.53%  -
  368101  24.09%  https://tinderbox.chruetertee.ch/tb/index.php?action=latest_buildports
  183953  12.04%  https://tinderbox.chruetertee.ch/tb/templates/paefchen/tinderstyle.css
  147500  9.65%   https://tinderbox.chruetertee.ch/tb/index.php
  40454   2.65%   http://tinderbox.chruetertee.ch/
  38295   2.51%   https://tinderbox.chruetertee.ch/tb/

 5 - HTTP 404 Not Found response code
 Top 6 different 404 sorted by requests

  78      0.01%   /tb/templates/default/index.php
  54      0.00%   /phpMyAdmin/scripts/setup.php
  53      0.00%   /phpmyadmin/scripts/setup.php
  47      0.00%   /mysqladmin/scripts/setup.php
  46      0.00%   /php-my-admin/scripts/setup.php
  45      0.00%   /phpMyAdmin-2.6.3/scripts/setup.php

 6 - Operating Systems
 Top 6 different Operating Systems sorted by unique requests

  1161    65.82%  Unknown          ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
  387     21.94%  BSD              |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
  167     9.47%   Windows          |||||||||||||||||||||||||||||||||
  25      1.42%   Macintosh        |||||
  24      1.36%   Linux            ||||


 7 - Browsers
 Top 6 different browsers sorted by unique requests

  1063    60.26%  Unknown          ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
  464     26.30%  Firefox          |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
  116     6.58%   MSIE             |||||||||||||||||||||||||
  78      4.42%   Others           |||||||||||||||||
  17      0.96%   Safari           |||
  16      0.91%   Crawlers         |||

 8 - Hosts
 Top 6 different hosts sorted by requests

  390975  25.59%  tinderbox.chruete||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
  338434  22.15%  212.47.xxx.xxx   |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
  201015  13.16%  212.47.xxx.xxx   |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
  110549  7.24%   93.186.xxx.xxx   |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
  40700   2.66%   85.2.xxx.xxx     ||||||||||||||||||||||||
  28036   1.83%   62.203.xxx.xxx   ||||||||||||||||

 10 - Top Referring Sites
 Top 6 different referring sites sorted by requests

  61064   4.00%   tinderbox.chruetertee.ch
  26      0.00%   xyz
  16      0.00%   www.netcraft.com
  6       0.00%   xyz
  4       0.00%   random.yahoo.com
  4       0.00%   xyz

 11 - Top Keyphrases used on Google's search engine
 Top 6 different keyphrases sorted by requests

  3       0.00%   free proxy checker

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

Comments (1)  Permalink

Systemstatistiken aufzeichnen

Mit Hilfe von gather lassen sich Systemstatistiken aufzeichnen und im nachhinein abfragen. Im FreeBSD-Portbaum findet man gather unter sysutils/gather:

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

Nun müssen in der /etc/crontab folgende Einträge gemacht werden. Damit werden alle fünf Minuten die Daten gespeichert und automatisch nach sieben Tagen gelöscht:

*/5 * * * * root /usr/local/bin/gather collect
18  0 * * * root /usr/local/bin/gather expire 7

Nun kann abgefragt werden, welche Daten aufgezeichnet werden:

# gather show utils
-----------------------------------------------------------------------
name       cmd                      desc
-----------------------------------------------------------------------
df         /bin/df                  df output
fstat      /usr/bin/fstat           fstat output
netstat-La /usr/bin/netstat -Lna    netstat listening socket statistics
netstat-a  /usr/bin/netstat -na     netstat socket statistics
netstat-i  /usr/bin/netstat -ni     netstat interface statistics
netstat-m  /usr/bin/netstat -m      netstat mbuf statistics
netstat-rs /usr/bin/netstat -rs     netstat routing statistics
netstat-s  /usr/bin/netstat -s      netstat system wide statistics
nfsstat    /usr/bin/nfsstat         nfsstat output
ps         /bin/ps auxww            processes statistics
sockstat   /usr/bin/sockstat        sockstat output
sysctl     /sbin/sysctl -a          sysctl variables
top        /usr/bin/top -d1 -b 100  top output
uptime     /usr/bin/uptime          system uptime
vmstat     /usr/bin/vmstat          vmstat output
vmstat-i   /usr/bin/vmstat -ai      vmstat interrupts statistics
vmstat-m   /usr/bin/vmstat -m       vmstat kernel malloc(9) statistics
vmstat-z   /usr/bin/vmstat -z       vmstat kernel uma(9) statistics

Möchte man abfragen wie der System-Load am 12. November 2010 zwischen 2:00 und 3:00 war, kann folgender Befehl verwendet werden:

# gather show -t '2010-11-12/02' grep '.*' uptime
2010-11-12/02/00:  2:00AM  up 120 days,  9:50, 0 users, load averages: 2.31, 1.92, 1.42
2010-11-12/02/05:  2:05AM  up 120 days,  9:55, 0 users, load averages: 0.84, 1.27, 1.27
2010-11-12/02/10:  2:10AM  up 120 days, 10 hrs, 0 users, load averages: 0.86, 0.97, 1.11
2010-11-12/02/15:  2:15AM  up 120 days, 10:05, 0 users, load averages: 4.51, 2.75, 1.83
2010-11-12/02/20:  2:20AM  up 120 days, 10:10, 0 users, load averages: 4.36, 3.54, 2.45
2010-11-12/02/25:  2:25AM  up 120 days, 10:15, 0 users, load averages: 4.15, 3.99, 2.99
2010-11-12/02/30:  2:30AM  up 120 days, 10:20, 0 users, load averages: 4.43, 4.20, 3.37
2010-11-12/02/35:  2:35AM  up 120 days, 10:25, 0 users, load averages: 3.30, 3.88, 3.47
2010-11-12/02/40:  2:40AM  up 120 days, 10:30, 0 users, load averages: 0.95, 1.98, 2.69
2010-11-12/02/45:  2:45AM  up 120 days, 10:35, 0 users, load averages: 1.25, 1.24, 2.11
2010-11-12/02/50:  2:50AM  up 120 days, 10:40, 0 users, load averages: 0.93, 1.02, 1.74
2010-11-12/02/55:  2:55AM  up 120 days, 10:45, 0 users, load averages: 1.06, 1.04, 1.54

Auch können nur bestimmte Zeilen von den aufgezeichneten Daten angezeigt werden. Im folgenden Beispiel wird jeweils nur die Zeile mit den offenen Dateien innerhalb des angegebenen Zeitfensters aus den aufgezeichneten sysctl-Variablen angezeigt:

# gather show -t '2010-11-13/1--2010-11-13/2' grep '^kern.openfiles:' sysctl
2010-11-13/01/00: kern.openfiles: 255
2010-11-13/01/05: kern.openfiles: 259
2010-11-13/01/10: kern.openfiles: 261
2010-11-13/01/15: kern.openfiles: 261
2010-11-13/01/20: kern.openfiles: 264
2010-11-13/01/25: kern.openfiles: 261
2010-11-13/01/30: kern.openfiles: 261
2010-11-13/01/35: kern.openfiles: 270
2010-11-13/01/40: kern.openfiles: 308
2010-11-13/01/45: kern.openfiles: 311
2010-11-13/01/50: kern.openfiles: 296
2010-11-13/01/55: kern.openfiles: 308
2010-11-13/02/00: kern.openfiles: 311
2010-11-13/02/05: kern.openfiles: 306
2010-11-13/02/10: kern.openfiles: 282
2010-11-13/02/15: kern.openfiles: 265
2010-11-13/02/20: kern.openfiles: 269
2010-11-13/02/25: kern.openfiles: 301
2010-11-13/02/30: kern.openfiles: 311
2010-11-13/02/35: kern.openfiles: 294
2010-11-13/02/40: kern.openfiles: 311
2010-11-13/02/45: kern.openfiles: 311
2010-11-13/02/50: kern.openfiles: 309
2010-11-13/02/55: kern.openfiles: 294

Auch können die Anzahl gefunden Zeilen ausgegeben werden. Möchte man wissen wieviele offene Sockets der www-Benutzer hatte, kann folgender Befehl verwendet werden:

# gather show -t '2010-11-09' grep -c '^www\s' sockstat 
2010-11-09/00/00: 32
2010-11-09/00/05: 32
2010-11-09/00/10: 35
2010-11-09/00/15: 35
2010-11-09/00/20: 34
2010-11-09/00/25: 34
[...]
2010-11-09/23/30: 32
2010-11-09/23/35: 32
2010-11-09/23/40: 32
2010-11-09/23/45: 32
2010-11-09/23/50: 32
2010-11-09/23/55: 32

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

Comments (1)  Permalink

In einer Datei nach IPv4-Adressen suchen

Mit Hilfe von grepcidr lässt sich in einer Datei nach IPv4-Adressen suchen. Im FreeBSD -Portbaum findet man grepcidr unter net-mgmt/grepcidr:

# cd /usr/ports/net-mgmt/grepcidr && make install clean

Nun kann analog zu grep in einer Datei nach einer IPv4-Adresse gesucht werden und die entsprechenden Zeilen werden ausgegeben:

# cat hosts 
10.0.0.1        host1.chruetertee.ch
10.0.0.10       host2.chruetertee.ch
10.0.0.12       host3.chruetertee.ch
10.0.0.20       host4.chruetertee.ch
127.0.0.1       localhost
192.168.1.1     jail1.chruetertee.ch
192.168.1.9     jail2.chruetertee.ch
# grepcidr 127.0.0.1 hosts
127.0.0.1       localhost

Weiter kann auch ein Netz in der CIDR -Notation angegeben werden und alle Adressen innerhalb dieses Netzwes werden ausgegeben:

# grepcidr 192.168.1.0/24 hosts
192.168.1.1     jail1.chruetertee.ch
192.168.1.9     jail2.chruetertee.ch

Ausserdem ist es möglich einen IP-Adressbereich anzugeben nach welchem gesucht werden soll:

# grepcidr 10.0.0.10-10.0.0.19 hosts
10.0.0.10       host2.chruetertee.ch
10.0.0.12       host3.chruetertee.ch

Mit Hilfe der -c Option werden die gefundenen Zeilen nicht ausgegeben sondern angezeigt wie viele Treffer in der Datei erziehlt wurden. Mit der -v Option werden alle Zeilen ausgegeben welche die Suchadressen nicht beinhalten.

 Permalink

Apache-Logdateien mit SQL auswerten

Mit Hilfe von asql können Apache-Logdateien mit Hilfe von SQL ausgewertet werden. Im FreeBSD-Portbaum findet man asql unter www/asql:

# cd /usr/ports/www/asql && make install clean

Startet man asql muss zuerst die Apache-Logdatei mit Hilfe des load Kommandos geladen werden:

# asql
asql v1.6 - type 'help' for help.
asql> load /var/log/httpd-access.log                                                                                                     
Loading: /var/log/httpd-access.log

Durch das show Kommandos werden die Spalten angezeigt welche angefragt werden können:

# asql> show                                                                                                                                  

   The table 'log' table has the following columns:

  id      - ID of the request
  source  - IP, or hostname, which made the request.
  request - The HTTP request
  status  - The HTTP status-code returned
  size    - The size of the response served, in bytes.
  method  - The HTTP method invoked (GET, PUT, POST etc).
  referer - The HTTP referer (sic).
  agent   - The User-Agent which made the request.
  version - The HTTP version used by this client.
  date    - The date and time at which the request was made.
  label   - Any label applied when the logfile was read.
  user    - The remote (authenticated) user, if any.

Nun kann mit SQL zum Beispiel die Anzahl Logzeilen abgefragt werden:

# asql> SELECT COUNT(id) FROM logs                                                                                                            
11824

Im folgenden Beispiel wird abgefragt welche 10 IP Adressen am meisten Inhalte heruntergeladen haben und wieviele Bytes im Total:

# asql> SELECT source,SUM ( size ) AS Number FROM logs GROUP BY source ORDER BY Number DESC, source LIMIT 10                                  
xxx.xxx.144.25 27051285778
xxx.xxx.170.131 14517940587
xxx.xxx.191.155 13897162645
xxx.xxx.35.202 7229313024
xxx.xxx.208.198 6773282128
xxx.xxx.115.44 6044618675
xxx.xxx.160.156 5183653049
xxx.xxx.253.241 4906880739
xxx.xxx.7.52 4906749542
xxx.xxx.7.104 4906746880
asql> exit

Mit Hilfe des exit Kommandos wird asql wieder beendet. Mehr Informationen zu asql erhält man mit der --manual Option von asql.

 Permalink
Prev Next51-60/325