Technical Staff Blog

Last update on .

finger, floor, anyone, and the demise of rwho

Short version: The commands anyone and floor no longer work. finger/cslookup partly works but will no longer exist after this month. Its remaining functionality has been assumed by elbow.

Long version:

A week or so prior to the Great Precarious Filesystem Shift last month, we shut down our rwho service. Rwho was the system which kept track of who was logged into what machines, and was used principally for two things: load balancing for the ssh and FastX gateways, and the handful of utilities that people use to locate one another: finger/cslookup, floor, and anyone. Most of you probably won't have noticed much change in performance of the gateways, since traffic is pretty light at the very end of the semester, but all of the abovementioned utilities now report error messages saying that rwho data is unavailable (although finger is still able to print other user information).

In addition to being an extremely crufty and not very reliable codebase, rwho was a broadcast system and required that its central servers be on the same subnet as the machines it was collecting data from. With the migration of our backend services to CIS-provisioned virtual servers, which are hosted on a different subnet, it is no longer possible to fulfill this requirement.

Last week I put into place a new load balancing system for ssh/FastX, which leverages our existing Ganglia monitoring system (you can access the Ganglia web interface at perfmon.cs.brown.edu from anywhere in the department, or over VPN). So far this load balancer has been working well, though I have yet to observe it under the heavy strain of lab sessions. However, the Ganglia platform doesn't lend itself well to the task of locating specific users - it reports data in the form of numbers associated with predefined metrics.

In other words, our systems currently have no way of locating users in the building. I'm aware that many users - myself included - like being able to locate other logged-in users, and at some point in the future we may implement a replacement, but it is low on our list of priorities at the moment.

Relatedly, people have complained about the name of our finger program, which is an adapted and Brown CS-specialized version of the classic Unix finger program that locates and displays information about users. Consequently, an alias cslookup has been in place since February. With the demise of rwho, finger is now half broken and there would be no reason to keep it around any longer under any name, except that it is still quite widely used for its other function, i.e. to find people's real names and other information.

So I've written a partial-replacement program called elbow which now lives in /usr/bin on desktop machines. elbow is just a simple shell script; while it doesn't locate users, it does the other things that finger does: prints login name, full name, office #, phone #, home directory, login shell, and the contents of the user's .project and .plan files if they exist. (The shortcut l - lowercase L - is now a wrapper script for elbow that only does exact matching of login names, in the same way that f was a shortcut for finger.)

The original finger/cslookup will be removed from the department systems entirely at the end of this month, so update any scripts you have that rely on it before then!