Here at the school district I was running into a problem where if several Mac OS X wireless clients logged into the network at once, everything slowed down to a crawl. After researching the problem, it looked like the user’s Library and Microsoft User Data folders were causing the problem. I tried turning on OS X’s home folder syncronization, but that didn’t work very well, and filled up our older computers fast. The solution I found was to locally cache the user’s Library and Microsoft User Data folder. To do this, create a symbolic link from the user’s networked ‘Library’ folder and point it to a local source. I chose /tmp/UserCache/username/Library. Here is the login script I created to automate the process:
#! /bin/bash
# Create local user caches of important directories
# Written by Steven Eppler 04/04/2006
export PATH=/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin
# Set user variable
user="$1"
# This grabs the user's home directory server
input=`dscl localhost read Search/Users/$user NFSHomeDirectory`
nethomedir=${input:18}
# Or you can hardcode it...
# nethomedir="/Network/Servers/ServerName/Volume/$user"
# Check for blank nethomedir - otherwise you will delete
# the root /Library folder!
if [ """$nethomedir""" != "" ]; then
echo $user
echo $nethomedir
# Create local caching directories
mkdir /tmp/UserCache
mkdir /tmp/UserCache/$user
mkdir /tmp/UserCache/$user/Microsoft\ User\ Data
mkdir /tmp/UserCache/$user/Library
# Give everyone rights to them...
chmod -R ugo=rwx /tmp/UserCache
# Create Documents and Desktop folder (sometimes they don't exist)
mkdir $nethomedir/Documents
mkdir $nethomedir/Desktop
# Delete old folders or links
rm -rf $nethomedir/Library
rm -rf $nethomedir/Documents/Microsoft\ User\ Data
# Create new links
ln -s /tmp/UserCache/$user/Library $nethomedir/Library
ln -s /tmp/UserCache/$user/Microsoft\ User\ Data $nethomedir/Documents/Microsoft\ User\ Data
fi
Hi, long shot here since it looks like you haven’t done a blog entry in a while, but how do do a login script for OS X when using a Win2003 server?
You won’t be able to send one down from Win2003 (as far as I know) but you can create local scripts by creating a login hook.
A program to easily create a login hook can be found here:
http://www.bombich.com/software/lwm.html
Thanks,
Steven
Ok, I am an idiot, how do I use this?