BlogBlog ÜbersichtjailscriptportsoptFreeBSDLinksThermoskanne

Notizen zur Konfiguration eines Servers mit FreeBSD 6.2

Rechtzeitig zum Erscheinen von FreeBSD 6.2 wurde das PDF mit "Notizen zur Konfiguration eines Servers mit FreeBSD" auf FreeBSD 6.2 aktualisiert. Zudem wurden die Optionen in den Konfigurationsdateien besser dokumentiert sowie die pf-Firewall und gmirror hinzugefügt.
Das PDF kann unter http://www.chruetertee.ch/freebsd/ heruntergeladen werden. Es handelt sich dabei nicht um eine Schritt-für-Schritt Anleitung, sondern mehr um eine Sammlung von Möglichkeiten zur Konfiguration.
Comments (3)  Permalink

Befehle in der tcsh zu einer bestimmten Zeit ausführen

In der tcsh lassen sich Befehle zu einer bestimmten Zeit ausführen. Muss man zum Beispiel um 17:00 gehen, so kann man sich um 16:45 eine Warnung in der Shell ausgeben, um 17:00 den Shellpromt ändern und um 17:05 den Rechner automatisch herunterfahren lassen:

# sched 16:45 echo Du musst langsam gehen
# sched 17:00 set prompt="Los jetzt >"
# sched 17:05 shutdown -p +1 Ich hab Dich gewarnt

Die gespeicherten Befehle lassen sich mit sched ansehen:

# sched
1 16:45 echo Du musst langsam gehen
2 17:00 set prompt="Los jetzt >"
3 17:05 shutdown -p +1 Ich hab Dich gewarnt

Möchte man jetzt einen Befehl wieder entfernen, so benutzt man die Nummer, die von sched vor jeden Befehl angezeigt wird:

# sched -3
# sched
1 16:45 echo Du musst langsam gehen
2 17:00 set prompt="Los jetzt >"

Auch lässt sich die Zeit in Stunden und Minuten von der aktuellen Zeit her angeben:

# date 
Sa 13 Jan 2007 11:34:20 CET
# sched +0:5 echo xyz zurückrufen
# sched
1 11:39 echo xyz zurückrufen

Was man Bedenken sollte ist, dass wenn man die Shell schliesst, auch die gespeicherten Befehle weg sind.

Related Entries:
Wort in der tcsh löschen
Programm mit which finden
Liste der besuchten Verzeichnisse merken
foreach-Schleife in der tcsh
tcsh bei Inaktivität beenden
 Permalink

history der tcsh benutzen

Die tcsh merkt sich die zuletzt verwendeten Befehle, so dass man diese zu einem späteren Zeitpunkt wieder verwenden kann. Die ganze Liste der verwendeten Befehle kann wie folgt angeschaut werden:

# history
114 9:56 cd /tmp/
115 9:56 ls -aol
116 9:56 more test
117 9:57 ssh test.chruetertee.ch
118 9:57 history

Die Grösse der History kann für einen Benutzer in der ~/.cshrc oder für alle Benutzer in der /etc/csh.cshrc festgelegt werden:

set history = 1000

Auch kann festgelegt werden, wieviele Befehle bei einem Logout gespeichert werden sollen, damit sie beim nächsten Anmelden wieder zur Verfügung stehen:

set savehist = 100

Der zuletzt verwendete Befehl kann ganz einfach mit zwei Ausrufezeichen nochmals ausgeführt werden:

# !!
history
114 9:56 cd /tmp/
115 9:56 ls -aol
116 9:56 more test
117 9:57 ssh test.chruetertee.ch
118 9:57 history
119 9:58 history

Vor jedem Befehl in der History steht eine Nummer. So kann ein ganz bestimmter Befehl nochmals ausgeführt werden, indem man ein Ausrufezeichen und die Nummer des Befehls in der tcsh eingibt:

# !115
ls -aol

Gibt man ein Ausrufezeichen und einige Buchstaben ein, so wird der letzte Befehl ausgeführt, welcher mit diesen Buchstaben beginnt:

# !mo
more test

Möchte man nur den Befehl sehen und nicht ausführen, so hängt man ein Doppelpunkt und ein p an:

# !mo:p
more test

Mit einem Fragezeichen nach dem Ausrufezeichen wird der letzte Befehl ausgeführt, der die Zeichenfolge nach dem Fragezeichen beinhaltet:

# !?tmp
cd /tmp/

Auch lassen sich Befehle direkt mit einem sed nach einem Doppelpunkt bearbeiten. Folgendes Beispiel führt Befehl 117 aus, tauscht allerdings test mit bla aus:

# !117:s/test/bla/
ssh bla.chruetertee.ch
Related Entries:
Wort in der tcsh löschen
Programm mit which finden
Liste der besuchten Verzeichnisse merken
foreach-Schleife in der tcsh
tcsh bei Inaktivität beenden
 Permalink

portsopt Version 1.1 erschienen

Die Version 1.1 von portsopt ist erschienen. Folgende Änderungen wurden vorgenommen:

  • Probleme mit Zeilenumbrüchen behoben, wodurch vorher einige Optionen nicht angezeigt wurden
  • Gleiche Optionen werden nicht mehrmals angezeigt
  • BROKEN_WITH werden nicht mehr angezeigt

portsopt durchsucht FreeBSD-Port-Makefiles nach WITH- und WITHOUT-Optionen und gibt diese aus. Auch lassen sich die Optionen der Abhängigkeiten eines Ports anzeigen.

portsopt findet man nun auch in den FreeBSD-Ports unter sysutlis/portsopt:

# cd /usr/ports/sysutlis/portsopt && make install clean

UPDATE 05.02.2007:

portsopt wurde von sysutils in die neue Kategorie ports-mgmt verschoben. portsopt kann nun wie folgt installiert werden:

# cd /usr/ports/ports-mgmt/portsopt && make install clean
 Permalink

FAT-Partition, welche grösser als 128GB ist, mounten

Muss man eine FAT-Partition, welche grösser als 128GB ist, mounten, so muss man zuerst einen Kernel erstellen, welcher folgende Option beinhaltet:

options   MSDOSFS_LARGE

Danach kann die FAT-Partition ganz normal gemountet werden. Dies sollte man allerdings nur machen, wenn man keine andere Option hat, da gemäss src/sys/conf/NOTES für jede Datei auf der FAT-Partition 32 Byte im Kernel-Speicher benötigt werden, was bei zu vielen Dateien auf der FAT-Partition zu einer Kernel-Panic führen könnte.

Besser ist es FAT-Partitionen, welche kleiner als 128GB sind, zu verwenden, oder besser noch ganz auf FAT zu verzichten.

 Permalink

Datei aufteilen

Soll eine Datei auf eine CD, ein ZIP-Drive oder eine Floppy gespeichert werden, ist aber für das Medium zu gross, so kann man die Datei mit split(1) aufteilen.

# split -b <Grösse der Teile> <Zu grosse Datei> <Dateinamen-Prefix der Teile>

Möchte man zum Beispiel die folgende Datei auf drei Floppys verteilen, so kann man dies wie folgt tun:

# ls -al dump.tar.gz 
-rw-r--r-- 1 root wheel 2719811 Dec 29 22:18 dump.tar.gz
# split -b 1m dump.tar.gz dump.part.
# ls -l dump.part.*
-rw-r--r-- 1 root wheel 1048576 Dec 29 22:23 dump.part.aa
-rw-r--r-- 1 root wheel 1048576 Dec 29 22:23 dump.part.ab
-rw-r--r-- 1 root wheel 622659 Dec 29 22:23 dump.part.ac

Nun wurden drei Dateien erzeugt, welche maximal 1 MB gross sind und auf den Floppys gespeichert werden können. Die Grösse der einzelnen Teile kann mit der -b Option bestimmt werden. Der Buchstabe nach der Zahl bestimmt die Einheit. Ein k bedeutet Kilobyte, ein m bedeutet Megabyte. Für Gigabyte gibt es allerdings keine Abkürzung.

Sollen die Teile nun wieder zusammengefügt werden, nimmt man cat(1) zu Hilfe:

# cat <Dateinamen-Prefix der Teile>* > <Dateinamen der ursprünglichen Datei>

Die Reihenfolge der Dateien wird automatisch anhand der Endungen der einzelnen Dateien erkannt. In diesem Beispiel würde dies folgendermassen aussehen:

# ls -al dump.*
-rw-r--r-- 1 root wheel 1048576 Dec 29 22:23 dump.part.aa
-rw-r--r-- 1 root wheel 1048576 Dec 29 22:23 dump.part.ab
-rw-r--r-- 1 root wheel 622659 Dec 29 22:23 dump.part.ac
# cat dump.part.* > dump.tar.gz
# ls -al dump.*
-rw-r--r-- 1 root wheel 1048576 Dec 29 22:23 dump.part.aa
-rw-r--r-- 1 root wheel 1048576 Dec 29 22:23 dump.part.ab
-rw-r--r-- 1 root wheel 622659 Dec 29 22:23 dump.part.ac
-rw-r--r-- 1 root wheel 2719811 Dec 29 22:31 dump.tar.gz
 Permalink

portsopt Version 1.0 erschienen

Die Version 1.0 von portsopt ist erschienen. Folgende Änderungen wurden vorgenommen:

  • Störende Leerzeichen in der Anzeige entfernt
  • IGNORE_WITH werden nicht mehr angezeigt
  • Code aufgeräumt und verbessert

portsopt durchsucht Port-Makefiles nach WITH- und WITHOUT-Optionen und gibt diese aus. Auch lassen sich die Optionen der Abhängigkeiten eines Ports anzeigen. Das Skript kann hier heruntergeladen werden.

Comments (2)  Permalink

Arbeitsspeicher auf Fehler überprüfen

Möchte man seinen Arbeitsspeicher auf Fehler überprüfen, so kann man dies mit memtest(8) tun. memtest findet man in den FreeBSD-Ports unter /usr/ports/sysutils/memtest:

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

An memtest können zwei Argumente übergeben werden. Wieviel Arbeitsspeicher in MB alloziert und getestet werden soll und wieviele Testdurchgänge durchgeführt werden sollen:

# memtest <Zu prüfender Speicher in MB> <Anzahl Durchgänge>

Wird die Anzahl Durchgänge nicht angegeben, so wird der Test solange durchgeführt, bis der Benutzer diesen abbricht.

In folgendem Beispiel werden 100MB Arbeitsspeicher in einem Durchgang geprüft. Während dieses Durchgangs traten keine Fehler auf:

# memtest 100 1
memtester version 4.0.6 (32-bit)
Copyright (C) 2006 Charles Cazabon.
Licensed under the GNU General Public License version 2 (only).

pagesize is 4096
pagesizemask is 0xfffffffffffff000
want 100MB (104857600 bytes)
got 100MB (104857600 bytes), trying mlock ...locked.
Loop 1/1:
Stuck Address : ok
Random Value : ok
Compare XOR : ok
Compare SUB : ok
Compare MUL : ok
Compare DIV : ok
Compare OR : ok
Compare AND : ok
Sequential Increment: ok
Solid Bits : ok
Block Sequential : ok
Checkerboard : ok
Bit Spread : ok
Bit Flip : ok
Walking Ones : ok
Walking Zeroes : ok

Done.

Sollten während des Tests Fehler auftreten, so sollte man seine Hardware überprüfen, da auch überhitzte Prozessoren oder überlastete Netzteile Fehler verursachen können.

 Permalink

Zeilenlänge von Texten limitieren

fmt(1) formatiert Textdateien so, dass standardmässig eine Zeile aus 65, maximal jedoch aus 75 Zeichen besteht.

# more freebsd
FreeBSD® is an advanced operating system for x86 compatible (including Pentium® and Athlon), amd64 compatible (including Opteron, Athlon64, and EM64T), UltraSPARC®, IA-64, PC-98 and ARM architectur
es. It is derived from BSD, the version of UNIX® developed at the University of California, Berkeley. It is developed and maintained by a large team of individuals. Additional platforms are in vari
ous stages of development.
# fmt freebsd
FreeBSD® is an advanced operating system for x86 compatible (including
Pentium® and Athlon), amd64 compatible (including Opteron, Athlon64,
and EM64T), UltraSPARC®, IA-64, PC-98 and ARM architectures. It is
derived from BSD, the version of UNIX® developed at the University
of California, Berkeley. It is developed and maintained by a large
team of individuals. Additional platforms are in various stages of
development.

Die Anzahl Zeichen pro Zeile kann auch selber bestimmt werden:

# fmt <Optimale Anzahl Zeichen> <Maximale Anzahl Zeichen> <Textdatei>

Es kann auch nur eine maximale Anzahl Zeichen angegeben werden:

# fmt -w <Maximale Anzahl Zeichen> <Textdatei>

So kann man zum Beispiel eine pkg-descr auf 80 Zeichen pro Zeile beschränken:

# fmt -w 80 pkg-descr.raw > pkg-descr
 Permalink

Zufällige Nummern generieren

Möchte man zum Beispiel in einem Bourne-Shellskript eine zufällige Nummer generieren, so kann man jot(1) zur Hilfe nehmen.

# jot -r <Anzahl zu generierende Nummern> <Untere Grenze> <Obere Grenze>

Um eine Zahl zwischen 10000 und 99999 zu generieren, verwendet man jot wie folgt:

# jot -r 1 10000 99999

jot ist auf FreeBSD und OpenBSD bereits im Basissystem vorhanden. Was jot noch alles kann, findet man in der Manpage jot(1).

 Permalink
Prev Next391-400/521