BlogBlog ÜbersichtjailscriptportsoptFreeBSDLinksThermoskanne

Loginnamen anzeigen

Mit Hilfe von logname lässt sich anzeigen mit welchem Benutzer man sich angemeldet hat:

# logname
beat

Dies funktioniert auch, wenn der Benutzer mit su(1) gewechselt oder die LOGNAME oder USER Umgebungsvariablen verändert wurden:

# su -
# id
uid=0(root) gid=0(wheel) groups=0(wheel),5(operator)
# logname
beat
 Permalink

Benutzer sperren

Möchte man einen lokalen Benutzer sperren so kann dazu pw lock als root verwendet werden:

# pw lock <Benutzernamen>

Soll der Benutzer danach wieder entsperrt werden, kann dies mit pw unlock gemacht werden:

# pw unlock <Benutzernamen>
 Permalink

Unterbrochener fetch-Transfer wiederaufnehmen

Lädt man eine grössere Datei mit fetch herunter, kann durch das verwenden der -R Option verhindert werden, dass die heruntergeladene Datei bei einem Transferunterbruch gelöscht wird:

# fetch -R ftp://ftp.ch.freebsd.org/pub/FreeBSD/releases/i386/ISO-IMAGES/8.1/FreeBSD-8.1-RELEASE-i386-disc1.iso
FreeBSD-8.1-RELEASE-i386-disc1.iso             23% of  645 MB 1988 kBps 04m16s
/tmp: write failed, filesystem is full
FreeBSD-8.1-RELEASE-i386-disc1.iso             23% of  645 MB 1986 kBps 04m14s
fetch: FreeBSD-8.1-RELEASE-i386-disc1.iso: No space left on device

Mit der -r Option kann danach ein allfällig abgebrochener Transfer fortgesetzt werden:

# fetch -r ftp://ftp.ch.freebsd.org/pub/FreeBSD/releases/i386/ISO-IMAGES/8.1/FreeBSD-8.1-RELEASE-i386-disc1.iso
 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
1-7/7