[K12OSN] Broadcast message

David Trask dtrask at vcs.u52.k12.me.us
Fri Oct 29 16:53:27 UTC 2004


Ok....this python script is put together from an earlier suggestion (in
March) from Doanld Ellerich I think.....
###################################

from os import system
from sys import argv

hosts = open('clients.txt').readlines()

if len(argv) < 2:
    argv.append("This is a broadcast message.  Just in case something
unexpected happens, save your work.")

for host in hosts:
    system("xmessage -display %s:0 -center %s &" %
(host.strip(), argv[1]))

#############################

I called it amesg.py

To execute it run

python amesg.py "Your message here"


You'll need to create a text file called clients.txt and enter the host
names in it

example:

ws224
ws345
ws123

++++++++++++++++

Now for my issue....I have a host file with MANY entries due to the fact
that my DHCP server is serving a huge range of addresses that I have
seperated out for different things...anyway....my idea....how can we poll
the server for the currently logged in workstations and then "cat" the
result to "clients.txt" prior to broadcast?  Any ideas?  If you can write
it into the script above or into the one Petre wrote earlier today.

"Support list for opensource software in schools." <k12osn at redhat.com> on
Friday, October 29, 2004 at 11:21 AM +0000 wrote:
>I, too, was playing with xmessage, on Luis's suggestion, and came up with
>this 
>quick & dirty script (which I'll call brmsg for discussion purposes):
>
>#!/bin/bash
>
># brmsg: Send a broadcast message to all terminal screens
>
>
>for x in `seq 1 30`
>do
>xmessage -center -timeout 10 -display 192.168.0.${x}:0.0 "$@" &
>done
>
>
>One would then call brmsg this way at a command prompt from the server:
>
>brmsg Please logout now or you may be expelled
>
>The message will pop up on the client for 10 seconds and then disappear. 
>It 
>needs some refinement: For the seq range, it would be better to get a
>list of 
>clients where someone is actually logged in so it doesn't waste time
>sending 
>messages to irrelevant workstations; using 'who -T' and piping it to awk
>would 
>be one way to get such a list.  And, as David suggested, and graphical
>version 
>of this would be nicer; perhaps I'll try something in perl/tk this
>weekend (no 
>gaurantees, I've got a ton of leaves to rake).
>
>One requirement is that the client workstation must be configured to
>accept such 
>messages, which in my server-and-one-client K12LSTP ver 3.0.1 here in my
>cube, 
>the clients are not.  This can be fixed by adding
>
>xhost +192.168.0.254
>
>to every user's ~/.profile.  This will allow such messages to be sent
>from the 
>server, but not from other clients which could be a nightmare, e.g.
>clever 
>students with too much time on their hands.
>
>Hopefully this is a start.



David N. Trask
Technology Teacher/Coordinator
Vassalboro Community School
dtrask at vcs.u52.k12.me.us
(207)923-3100




More information about the K12OSN mailing list