[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: [K12OSN] Broadcast message



How about this:

who -T|awk 'NF == 7 {print $7}'|sed 's/^(//'|sed 's/)$//'

Should give you a list of client workstations that have someone logged in.

Petre

David Trask wrote:
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 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 vcs u52 k12 me us
(207)923-3100

_______________________________________________
K12OSN mailing list
K12OSN redhat com
https://www.redhat.com/mailman/listinfo/k12osn
For more info see <http://www.k12os.org>



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]