首页 > 其他 > 详细

shell脚本 给linux上的用户群发信息

时间:2014-02-27 11:30:25      阅读:466      评论:0      收藏:0      [点我收藏+]
在项目连调的过程中,因为需要修改共用的MakeDebug,但是打开文件的时候发现该文件被打开,如果强制修改该文件的话,别人保存之后,就会覆盖我的内容。因此需要告知其他人,先关闭该该文件。
但是,这个时候,网络出现了故障,因此通过QQ群里发送信息的手段不行了。想到Linux用户之间可以发送信息,于是想到了一个好办法。


其实,如果用root权限的话,可以使用一个简单的方法【shutdown -k now ‘要发送的信息‘】,但是我这个用户,权限不够,因此必须想其他方法。


上网搜到可以通过【echo "hello">/dev/pts/102】发送到指定终端。
扩展阅读: http://bbs.chinaunix.net/thread-409061-1-1.html 


我搜了一下,该目录的作用:
/dev/pts是远程登陆(telnet,ssh等)后创建的控制台设备文件所在的目录
扩展阅读: http://blog.csdn.net/suiyuan19840208/article/details/7234722

因此,有多少终端,就有多少个文件,如下:
[billing_dx@bmcs1 pts]$ pwd
/dev/pts
[billing_dx@bmcs1 pts]$ ls
0   11  14  17  2   22  25  28  30  33  36  39  41  44  47  5   52  55  58  61  64  67  7   72  75  ptmx
1   12  15  18  20  23  26  29  31  34  37  4   42  45  48  50  53  56  59  62  65  68  70  73  8
10  13  16  19  21  24  27  3   32  35  38  40  43  46  49  51  54  57  60  63  66  69  71  74  9



通过【who am i】命令可以查看当前终端对应的终端号,如下:
[billing_dx@bmcs1 pts]$ who am i
billing_dx pts/52       Feb 26 09:52 (172.28.0.194)


向当前客户端发送信息
[billing_dx@bmcs1 pts]$ echo "hello" >/dev/pts/52
hello



但是,通过这中方式只可以给一个用户发送信息,因此,可以通过shell脚本的方式,发送信息。如下:
#!/bin/bash
# @file         SendMsg.sh
# @author       ymm
# @brief        给当前连接主机的终端群发信息
# @date         2014/2/26 11:33:47
# @History
# 1 2014/2/26 11:33:47  author ymm    初步完成


if [ $# -ne 1 ];then
    echo "请输入要发送的内容:";
    echo "eg:$0 hello"
    exit -1;
fi
Dir=/dev/pts/
for pts in $(ls $Dir)
do 
    echo $1 >${Dir}/${pts}
done




通过上面的方式,就可以和连接主机的所有终端发送信息了。



shell脚本 给linux上的用户群发信息,布布扣,bubuko.com

shell脚本 给linux上的用户群发信息

原文:http://blog.csdn.net/yang15225094594/article/details/19971763

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!