BlogBlog ÜbersichtjailscriptportsoptFreeBSDLinksThermoskanne

BIND-Konfiguration auf Fehler überprüfen

Möchte man seine Änderungen an der BIND-Konfiguration oder den Zonendateien auf Fehler überprüfen, kann dazu nslint verwendet werden. Im FreeBSD Portbaum findet man nslint unter dns/nslint:

# cd /usr/ports/dns/nslint && make install clean

Wird nslint aufgerufen, wird standardmässig die Konfiguration unter /etc/namedb/named.conf auf Fehler überprüft. Möchte man eine andere Datei überprüfen, so kann mit der -c Option der Pfad zur Datei angegeben werden:

# nslint
nslint: name referenced without other records: mail6.chruetertee.ch.
nslint: name referenced without other records: mail5.chruetertee.ch.
nslint: missing "ptr": www.chruetertee.ch. -> 217.150.245.53
nslint: 217.150.245.53 in use by chruetertee.ch. and www.chruetertee.ch.

Sind alle Fehler korrigiert, wird nslint keine Meldung ausgeben.

# nslint

Mehr Informationen zu nslint findet man in der Manpage nslint(8).

Comments (2)  Permalink

mergemaster-Konfigurationsdatei anlegen

Mit mergemaster können Dateien in /etc nach einem Update auf den neusten Stand gebracht werden. Dabei kann das Verhalten von mergemaster über eine Konfigurationsdatei gesteuert werden. Diese kann unter ~/.mergemasterrc oder global unter /etc/mergemaster.rc angelegt werden. Im folgenden Beispiel sollen Dateien, die auf dem System noch nicht existieren, automatisch installiert werden. Auch sollen Dateien, welche nicht verändert wurden, automatisch aktualisiert werden. Ersetzte Dateien werden unter /var/tmp/mergemaster/preserved-files-<Datum>-<Zeit>/ gesichert, wobei die /etc/motd nicht aktualisiert wird:

# Automatically install files that do not exist on the system already
AUTO_INSTALL=yes

# Automatically upgrade files that have not been user modified
AUTO_UPGRADE=yes

# Preserve files that you replace
PRESERVE_FILES=yes
PRESERVE_FILES_DIR=/var/tmp/mergemaster/preserved-files-`date +%y%m%d-%H%M%S`

# Files to always avoid comparing
IGNORE_FILES='/etc/motd'

Diese Optionen werden dann beim Aufruf von mergemaster automatisch verwendet:

# mergemaster

Mehr Informationen zu mergemaster und alle Optionen findet man in der Manpage mergemaster(8).

Comments (2)  Permalink

make buildworld/buildkernel ohne Befehlsausgabe

Baut man den Kernel oder die Welt mit make buildkernel oder make buildworld, werden die auszuführenden Befehle jeweils ausgegeben:

# make buildkernel
--------------------------------------------------------------
>>> Kernel build for GENERIC started on Sat Feb 28 10:41:51 CET 2009
--------------------------------------------------------------
===> GENERIC
mkdir -p /usr/obj/usr/src/sys

--------------------------------------------------------------
>>> stage 1: configuring the kernel
--------------------------------------------------------------
cd /usr/src/sys/i386/conf;  PATH=/usr/obj/usr/src/tmp/legacy/usr/sbin:/usr/obj/usr/src/tmp/legacy/usr/bin:/usr/obj/usr/src/tmp/legacy/usr/games:/usr/obj/usr/src/tmp/usr/sbin:/usr/obj/usr/src/tmp/usr/bin:/usr/obj/usr/src/tmp/usr/games:/sbin:/bin:/usr/sbin:/usr/bin  config  -d /usr/obj/usr/src/sys/GENERIC  /usr/src/sys/i386/conf/GENERIC
Kernel build directory is /usr/obj/usr/src/sys/GENERIC
Don't forget to do ``make cleandepend && make depend''

--------------------------------------------------------------
>>> stage 2.1: cleaning up the object tree
--------------------------------------------------------------
cd /usr/obj/usr/src/sys/GENERIC; MAKEOBJDIRPREFIX=/usr/obj  MACHINE_ARCH=i386  MACHINE=i386  CPUTYPE=  GROFF_BIN_PATH=/usr/obj/usr/src/tmp/legacy/usr/bin  GROFF_FONT_PATH=/usr/obj/usr/src/tmp/legacy/usr/share/groff_font  GROFF_TMAC_PATH=/usr/obj/usr/src/tmp/legacy/usr/share/tmac  _SHLIBDIRPREFIX=/usr/obj/usr/src/tmp  VERSION="FreeBSD 8.0-CURRENT i386 800061"  INSTALL="sh /usr/src/tools/install.sh"  PATH=/usr/obj/usr/src/tmp/legacy/usr/sbin:/usr/obj/usr/src/tmp/legacy/usr/bin:/usr/obj/usr/src/tmp/legacy/usr/games:/usr/obj/usr/src/tmp/usr/sbin:/usr/obj/usr/src/tmp/usr/bin:/usr/obj/usr/src/tmp/usr/games:/sbin:/bin:/usr/sbin:/usr/bin NO_CTF=1 make KERNEL=kernel cleandir
rm -f *.o *.so *.So *.ko *.s eddep errs  kernel.debug kernel kernel.symbols  linterrs makelinks tags vers.c  vnode_if.c vnode_if.h vnode_if_newproto.h vnode_if_typedef.h  agp_if.c ata_if.c eisa_if.c miibus_if.c mmcbr_if.c mmcbus_if.c card_if.c power_if.c pci_if.c pcib_if.c ppbus_if.c uart_if.c usb_if.c g_part_if.c isa_if.c bus_if.c clock_if.c cpufreq_if.c device_if.c linker_if.c serdev_if.c acpi_if.c agp_if.h ata_if.h eisa_if.h miibus_if.h mmcbr_if.h mmcbus_if.h card_if.h power_if.h pci_if.h pcib_if.h ppbus_if.h uart_if.h usb_if.h g_part_if.h isa_if.h bus_if.h clock_if.h cpufreq_if.h device_if.h linker_if.h serdev_if.h acpi_if.h  acpi_quirks.h aicasm* y.tab.h aic7xxx_seq.h aic7xxx_reg.h  aic7xxx_reg_print.c aic79xx_seq.h aic79xx_reg.h  aic79xx_reg_print.c miidevs.h pccarddevs.h teken_state.h  usbdevs.h usbdevs_data.h  acpi_wakecode.h acpi_wakecode.o acpi_wakecode.bin
rm -f .depend machine
cd /usr/src/sys/modules; MAKEOBJDIRPREFIX=/usr/obj/usr/src/sys/GENERIC/modules KMODDIR=/boot/kernel DEBUG_FLAGS="-g" MACHINE=i386 KERNBUILDDIR="/usr/obj/usr/src/sys/GENERIC" make  cleandir
===> 3dfx (cleandir)
===> 3dfx_linux (cleandir)
===> aac (cleandir)
===> aac/aac_linux (cleandir)
rm -f export_syms aac_linux.ko aac_linux.kld aac_linux.o aac_linux.ko.debug aac_linux.ko.symbols
rm -f @ machine
rm -f .depend GPATH GRTAGS GSYMS GTAGS

Möchte man die Befehle in der Ausgabe unterdrücken, kann die -s Option von make verwendet werden, so dass die Befehle ausgeführt, aber nicht mehr angezeigt werden:

# make -s buildkernel
--------------------------------------------------------------
>>> Kernel build for GENERIC started on Sat Feb 28 10:14:10 CET 2009
--------------------------------------------------------------
===> GENERIC

--------------------------------------------------------------
>>> stage 1: configuring the kernel
--------------------------------------------------------------
Kernel build directory is /usr/obj/usr/src/sys/GENERIC
Don't forget to do ``make cleandepend && make depend''

--------------------------------------------------------------
>>> stage 2.1: cleaning up the object tree
--------------------------------------------------------------
===> 3dfx (cleandir)
===> 3dfx_linux (cleandir)
===> aac (cleandir)
===> aac/aac_linux (clean)
===> aac/aac_linux (cleandepend)
===> aac/aac_linux (cleandir)
===> accf_data (cleandir)
===> accf_dns (cleandir)
===> accf_http (cleandir)
===> acpi (cleandir)
===> acpi/acpi (cleandir)
===> acpi/acpi_aiboost (cleandir)
===> acpi/acpi_asus (cleandir)
===> acpi/acpi_fujitsu (cleandir)
===> acpi/acpi_ibm (cleandir)
===> acpi/acpi_panasonic (cleandir)
===> acpi/acpi_sony (cleandir)
===> acpi/acpi_toshiba (cleandir)
===> acpi/acpi_video (cleandir)
===> acpi/acpi_dock (cleandir)

Mit Hilfe von whereintheworld aus den worldtools kann die Ausgabe von make buildworld noch übersichtlicher dargestellt werden.

 Permalink
1-3/3