(15. März 2004 — tk)

AFP-Sessions debuggen

Will man mehr Informationen über das, was beim Mounten eines Volumes bzw. im laufenden Betrieb passiert, so hat man dazu durchaus Möglichkeiten, die Geschwätzigkeit des AFP-Client zu erhöhen. Im folgenden die Varianten für alle MacOS X Versionen:

Zu Zeiten von MacOS X 10.0/10.1 setzte man die Environment-Variable ${AFP_DEBUG_LEVEL} auf 7 oder höher:

setenv AFP_DEBUG_LEVEL 8

(bzw. export AFP_DEBUG_LEVEL=8 wenn man mit Bourne Shell oder bash agiert)

Anschließend musste dann noch afp_debug_level in den globalen Benutzereinstellungen heraufgesetzt werden und nach dem Starten einer separaten Finder-Instanz aus der Shell heraus wurden die erweiterten Informationen auf »stdout« ausgegeben.

Mit MacOS X 10.2 und Folgeversionen vereinfachte Apple diesen Vorgang allerdings erheblich. Das separate Starten einer Finder-Instanz kann man sich ersparen und gelogged wird Richtung syslogd .

Zuerstmal muß die default Syslog-Konfiguration angepaßt werden, damit beliebige Debug-Informationen in ein Logfile geschrieben werden. Am einfachsten geht das, indem man in Zeile 2 (falls noch keine Änderungen vorgenommen wurden) der /etc/syslog.conf aus »kern.debug« ein »*.debug« macht, so daß die Zeile dann lautet:

*.notice;*.info;authpriv,remoteauth,ftp,install.none;*.debug;mail.crit    /var/log/system.log

Diese Änderung wird dafür sorgen, daß beliebige Debug-Informationen in /var/log/system.log protokolliert werden.

Anschließend muß dem syslog Daemon gesagt werden, daß er seine Konfiguration neu einlesen soll. Dies geschieht, indem man ihm ein SIGHUP Signal schickt:

killall -SIGHUP syslogd

Dann müssen die Einstellungen des AFP-Clients entsprechend angepaßt werden. Dies geschieht je Benutzer individuell mittels dessen »global preferences«. Auslesen kann man diese mittels »-g« Option per defaults : defaults read -g

Spannend sind hierbei die Einträge afp_debug_level und afp_debug_syslog. Ersterer regelt die Geschwätzigkeit (Einträge von 6 oder 7 sind sinnvoll, wenn man einer Sache spezifisch auf den Zahn fühlen will) und der zweite regelt, ob entsprechende Nachrichten für den syslogd generiert werden sollen (0 = aus, 1 = ein)

Um die Sache zu aktivieren, benutzt man entweder defaults write -g oder editiert direkt die passende Property List des Benutzers, der dann auch die AFP-Verbindungen herstellt: ~/Library/Preferences/.GlobalPreferences.plist

Nach allfälligen Änderungen überprüft man, ob diese auch funktionieren (oder man sich aus Versehen die Property List kaputt gemacht hat — also immer vorher eine Sicherungskopie davon anlegen oder eben defaults benutzen):

defaults read -g com.apple.AppleShareClientCore

sollte dann die entsprechenden Einträge aufweisen:

"afp_debug_level" = 6;
"afp_debug_syslog" = 1;

Ach ja: Man sollte die Geschwätzigkeit beizeiten wieder reduzieren, da das einem das syslog doch ziemlich zumüllt…