On Fri, Jan 26, 2007 at 05:51:49PM -0600, Richard Leon wrote:
I have noticed that the client collects all of the data and then the server "tests" the condition.
How would I go about writing a who script that would tell me when someone is logged in as root?
For a server-side script, you'll be hooking into the Hobbit "client" channel. You do that by running hobbitd_channel --channel=client MYSCRIPT through an extra section in the hobbitlaunch.cfg file. You can also run it by hand (eg for testing your script), then you must be logged in as the "hobbit" user and then run it via "bbcmd" like this: bbcmd hobbitd_channel --channel=client MYSCRIPT Your script will be getting the full client message, which looks like this: @@client#660157/osiris.hswn.dk|1169886036.071499|172.28.50.141|osiris.hswn.dk|linux|linux [uptime] 09:21:06 up 4 days, 6:53, 1 user, load average: 0.03, 0.06, 0.01 [date] Sat Jan 27 09:21:15 CET 2007 [who] henrik :0 2007-01-23 04:04 <lots more section> @@ (Just to see what it looks like, try running bbcmd hobbitd_channel --channel=client cat which just dumps the client data to the terminal). Each message begins with a line with "@@client...." and ends with a "@@" line. In between those two is a series of sections marked with "[SECTION]", you just need to grab the "[who]" section and scan it for a "root" login. When you've scanned a section, generate a status message (green or red) and send it to Hobbit - the hostname of the client reporting this data is in the "@@client..." line, as the fourth field (delimited by '|' signs). For someone familiar with Perl, I think it should be fairly straight-forward. Regards, Henrik