Articles by: nigelkersten

Competition Time! – seeking a name for "kicker-replacement" (We have a Winner!)

You might have read some of our previous articles talking about using kicker to perform actions on network status changes.

This was always an unsupported solution, and with Leopard it turns out that Apple no longer needed kicker, and so they got rid of it.

Chris Adams and I started kicking around some ideas in Python, and the result is an incredibly flexible framework for triggering events on any change to the SystemConfiguration API, NSWorkspace notifications, and filesystem changes via FSEvents.

You can find this along with some other useful Python Mac sysadmin utilities at the Google Code site pymacadmin.

Anyway, there's a problem.

We need a name.


[Edit: 2008/07/23 – We have a winner! Kok-Yong Tan came up with "cranker" and the primary daemon will be called "crankd" ]


Read on for details….

Read more

Using Managed Preferences in the DSLocal domain

So this has recently been discussed on the MacEnteprise list, but we thought we'd try and collate these ideas into a real world example.

Most of you should be aware of how you can use MCX to manage preferences for your directory service. Generally these days this is done by either running Open Directory, extending the schema for Active Directory or a standard OpenLDAP installation, or running a "magic triangle" setup where your client machines are bound to both an Open Directory setup and an Active Directory/OpenLDAP setup.

You might think that apart from these scenarios that you don't have any options for MCX management, but that's not true at all. We do have another option. Put MCX controls into the local directory service. 


Read on for some practical examples…. 

Read more

Creating stable and unstable branches with Apple’s Software Update Server.

Recently we've seen a few updates that have caused some stability problems from Apple, notably some of the wireless drivers with recent Santa Rosa based MacBook Pros.

If you're running an Apple Software Update Server for your Mac clients, and you should, as it gives you a point of central control of available updates, as well as saves on bandwidth costs…. then it's somewhat frustrating that all your users have exactly the same packages available to them.

Ideally you want to be able to have a group of guinea pigs who are happy to live on the edge, and only once you've performed QA on an update do you allow it to be available to your clients.  Apple's Software Update Server doesn't allow you this functionality out of the box, but we're going to show you how you can achieve a simple setup of an unstable branch that contains every single update, and a stable branch that only contains the updates you've enabled via the Server Admin GUI.

Read on….  

Read more

Automatically disconnecting disabled/asleep AFP sessions.

So a few people on the macos-x-server mailing list noticed that recent versions of OS X Server seem to be building up large numbers of Disabled/Asleep connections on their AFP servers, even with appropriate disconnection settings when users don't have files open.

 I'm even seeing this for servers where AFP session caching has been disabled, and this is as good a time as any to again point readers towards Apple's article on Understanding the "disconnect when idle" feature for AFP connections.

 I've been doing a little bit of work lately on scripts that parse out the result of serveradmin commands, so I thought I'd post up a script I put together that illustrates how you can do this with PHP command line scripting.  

Read on to download the script and read a brief description of how it works. 

Read more

Optimizing Mac OS X Server File Services – MacWorld 2007

These are the slides from Andrina and Nigel’s presentation on “Optimizing Mac OS X Server File Services” at MacWorld 2007. As we promised the attendees… up within the hour! 🙂

For the new readers from the site who weren’t familiar with the site, welcome! and check out some of our other articles, as there is a lot of good stuff here.

You can download the slides here.

Read more

AFP. It’s really quite good (part #2)

So a while ago we put together an article on tuning your AFP server for OS X Server.

I’d been promising part #2 for a while, just to cover some odds and ends, but there has been a major development which made a lot of that work redundant, namely the release of the Universal version of OS X Server 10.4.7.

Read on for some perhaps surprising results…

Read more

Automatic Email Quota Warnings

Filling in the holes where the system lags a bit, here’s a quick way to get e-mail quota warnings out to your users

So I got bitten this morning by a user who hit their IMAP quota limit and didn’t get any alerts from about it, possibly because he reckoned he hadn’t quit or logged out of his machine for about a month…

This led me to whip up this PHP script this morning. PHP has kind of become my command line scripting language of choice, mainly because I often find myself needing to read SQL data for one reason or another, it’s installed on all OS X machines, and has a reasonable API for things like sending email.

Read more

Resizing Partitions at Last!

As of 10.4.6, if you’ve got a GPT partitioned disk, you can use diskutil from the command line to resize volumes…

nigelkersten@zombie: ~ $ diskutil resizeVolume
Disk Utility Tool
Usage:  diskutil resizeVolume [Mount Point|Disk Identifier|Device Node] size
        <part1Format part1Name part1Size> <part2Format part2Name part2Size> ...
Non-destructively resize a disk. You may increase or decrease its size.
When decreasing size, you may optionally supply a list of new partitions to create.
Ownership of the affected disk is required.
Valid partition sizes are in the format of <number><size>.
Valid sizes are B(ytes), K(ilobytes), M(egabytes), G(igabytes), T(erabytes)
Example: 10G (10 gigabytes), 4.23T (4.23 terabytes), 5M (5 megabytes)
resizeVolume is only supported on GPT media with a Journaled HFS+ filesystem.
A size of "limits" will print the range of valid values for the current filesystem.
Example: diskutil resizeVolume disk1s3  10G
         JHFS+ HDX1 5G MS-DOS HDX2 5G
Valid filesystems: "Case-sensitive HFS+" "Journaled HFS+" "Case-sensitive Journaled HFS+" 
"HFS+" "HFS" "MS-DOS FAT32"  "MS-DOS FAT16" "MS-DOS" "MS-DOS FAT12" "UFS" "Linux" "Swap" 
Read more

AFP. It ain’t so bad….

From looking at the mailing lists and discussion boards, you’ll see that a reasonable number of people seem to be having problems with their AFP servers under OS X Server 10.4.x, particularly under heavy load with network home directories, and particularly in terms of stability. I used to be one of those people, but the solutions presented in this article have (touch wood) resolved the vast majority of my issues.

Read on for all your AFP tuning needs…

Read more

Installing blojsom with Open Directory Authentication

You may have heard about the upcoming integration of theblojsom blog server in Tiger Server when it comes out.
I really like blojsom, and have been running it for a while now. It is far easier to administer for multi-user and multi-blog setups than anything else I’ve experimented with, and offers some awesome features.

Read more