免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2111 | 回复: 9
打印 上一主题 下一主题

[网络相关] 通过脚本,如何 给指定的几个人的 终端 发送 消息 [复制链接]

论坛徽章:
2
数据库技术版块每日发帖之星
日期:2015-10-28 06:20:00数据库技术版块每日发帖之星
日期:2015-10-29 06:20:00
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-12-30 13:39 |只看该作者 |倒序浏览
本帖最后由 weichanghe2000 于 2012-12-30 15:49 编辑

大家好,我有这样一个事情要做,但是不知道怎么弄,前来求助:
假如 机器A:
/home 目录总大小 10G,下面有 30几个 用户目录(如 axx,bxx,cxx......)。
当 /home  使用到 总大小的 90%,即 9G时,我(非ROOT账户)需要向 占用最大空间的前 5名 用户 的 terminal 发送 message。
提醒 这5个人。

如果我(非ROOT账户)使用 wall 命令:wall  “cxx:you have used 2G home,exx:you have used 1.6G home......”  ,将会给所有 登陆用户的 terminal 发送消息,这样不好,
因为 排名靠后的那些用户 会认为他们的工作受到了干扰,认为与他们无关,认为是无用消息,会抱怨,会投诉。

write 命令可以给指定的人发送 message,但它是 交互式的,不能在 脚本里面实现下面的提示:
write cxxx “you have used 2G home"
write  exx "you have used 1.6G home”
......  

因为我想把上述的过程写在一个脚本里面,然后利用 crontab,每10分钟执行一次脚本,一旦检测到 home使用了90%,就向 前5名用户发送相应的消息。

请大家帮帮我。

多谢。

论坛徽章:
1
巳蛇
日期:2013-10-28 15:55:33
2 [报告]
发表于 2012-12-30 14:39 |只看该作者
w看用户的终端。

echo 到那终端。

论坛徽章:
0
3 [报告]
发表于 2012-12-30 14:40 |只看该作者
write user <<EOF
aaaa
EOF
这样的不是可以放到脚本里面吗?

论坛徽章:
2
数据库技术版块每日发帖之星
日期:2015-10-28 06:20:00数据库技术版块每日发帖之星
日期:2015-10-29 06:20:00
4 [报告]
发表于 2012-12-30 15:52 |只看该作者
回复 2# 惟吾无为


    多谢大神。

因为上面讲的是 机器A的 home 超标了。需要提醒 机器A 上面的 前5个用户。

但是如果 这5个用户 现在 都没有登陆到 机器A 上面,

我在机器A上面 用 write命令 给他们发 message肯定是 收不到的。

当他们没有登陆到机器A 时,如何保证在 别的机器上 能够收到 我在 机器A上 发的信息??

论坛徽章:
3
程序设计版块每日发帖之星
日期:2016-02-23 06:20:0015-16赛季CBA联赛之八一
日期:2017-10-26 17:58:2515-16赛季CBA联赛之北控
日期:2017-11-02 10:50:56
5 [报告]
发表于 2012-12-30 15:56 |只看该作者
这个应该需要域控制吧。否则,你怎么识别其他机器上登录的用户就是A上某用户?

论坛徽章:
2
数据库技术版块每日发帖之星
日期:2015-10-28 06:20:00数据库技术版块每日发帖之星
日期:2015-10-29 06:20:00
6 [报告]
发表于 2012-12-30 15:56 |只看该作者
本帖最后由 weichanghe2000 于 2012-12-30 23:30 编辑

回复 3# rongpmcu


多谢大侠,

刚刚试过了,这个方法果然可以在 脚本里面实现我的 需求:给指定的多人发送 message。

但是如果前5名用户 都不在机器A上时,都在别的机器上(我也不知道他们登陆在哪些机器上),

如何保证他们在别的机器上,能够收到我在机器A 上 给他们发的消息:诸位在 机器A上的 home 使用太多,请马上回到 机器A 进行清理。。

论坛徽章:
2
数据库技术版块每日发帖之星
日期:2015-10-28 06:20:00数据库技术版块每日发帖之星
日期:2015-10-29 06:20:00
7 [报告]
发表于 2012-12-30 16:03 |只看该作者
回复 5# 过过招


是的,是域 账号的。

假如我碰巧发现 前5个用户的某一个如 user_axxx  在 hostB 上,

我用 write user_axxx@hostB <<EOF

请回到机器A 上面清理 home目录

EOF

系统提示:write: user_axxx@hostB is not logged in

论坛徽章:
3
程序设计版块每日发帖之星
日期:2016-02-23 06:20:0015-16赛季CBA联赛之八一
日期:2017-10-26 17:58:2515-16赛季CBA联赛之北控
日期:2017-11-02 10:50:56
8 [报告]
发表于 2012-12-30 16:08 |只看该作者
提示已经很明显了,write命令发送需要该用户现在正登录在终端上。
类似你的需求,用mail比较靠谱吧?

论坛徽章:
0
9 [报告]
发表于 2012-12-30 16:11 |只看该作者
回复 6# weichanghe2000
这我不知道了,可能需要建立其他的机制来保持联系,或者你做一个额外的服务,将属于同一个人的不同机器上的帐号统计起来,但这样做起来就比较麻烦了

论坛徽章:
2
数据库技术版块每日发帖之星
日期:2015-10-28 06:20:00数据库技术版块每日发帖之星
日期:2015-10-29 06:20:00
10 [报告]
发表于 2012-12-30 16:15 |只看该作者
回复 8# 过过招


呵呵,由于安全原因,我们的 mail 通信 被 禁掉了。

所以才想到在 terminal 上直接打印
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP