解决zabbix的zabbix_get获取客户端数据爆“standard in must be a tty”
发表于:2025-11-10 作者:千家信息网编辑
千家信息网最后更新 2025年11月10日,(1)如题所示,我的zabbix客户端上有这样一个脚本:[root@mpdb01 scripts]# vim /usr/local/zabbix/scripts/paycompletion12.sh其
千家信息网最后更新 2025年11月10日解决zabbix的zabbix_get获取客户端数据爆“standard in must be a tty”
(1)如题所示,我的zabbix客户端上有这样一个脚本:
[root@mpdb01 scripts]# vim /usr/local/zabbix/scripts/paycompletion12.sh
其内容如下:
#!/bin/bashecho "/home/oracle/scripts/paymentcompletion.sh" | su - oracle
上面的脚本意思很简单,就是以oracle用户的身份执行一个统计脚本
(2)修改该zabbix_agentd配置文件,添加一个"UserParameter":
[root@prx01 scripts]# vim /usr/local/zabbix/etc/zabbix_agentd.conf
添加了如下内容:
UserParameter=paycompletion12,/usr/local/zabbix/scripts/paycompletion12.sh
(3)接着我在zabbix_server上测试获取数据时,爆了如题所示错误:
[root@nmp01 ~]# /usr/local/zabbix/bin/zabbix_get -s 10.110.80.117 -k paycompletion12standard in must be a tty
问题思考
对于这个问题, zabbix爆的错是"规定必须是一个tty"。我想问题原因应该是这样的:/usr/local/zabbix/scripts/paycompletion12.sh 这个脚本我测试的时候是用的是root用户,因此 su - oracle时自然不用输入密码,但是zabbix在执行这个脚本时用的用户是zabbix,因此按正常流程执行 su - oracle 时是需要输入密码的,但是显而易见zabbix_get去获取数据是不可能给你提供一个交互界面去输入密码的,因此报错
问题解决
其他操作不变,只需要修改zabbix_agentd配置文件,将"AllowRoot"设置成1就行。这样这个zabbix_agentd就拥有了root权限,因此自然就可以执行脚本获取数据了。具体操作如下:
[root@prx01 scripts]# vim /usr/local/zabbix/etc/zabbix_agentd.conf
修改以下内容:
AllowRoot=1
再次使用zabbix_get获取数据,显然是不会报错了,效果如下:
脚本
数据
问题
内容
密码
用户
输入
文件
自然
测试
配置
客户
客户端
显而易见
不用
再次
原因
意思
效果
时候
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
微软软件网络安全漏洞测试工具
eclipse怎么练数据库
南沙正规的网络安全运维
软件开发者产生纠纷怎么处理
服务器mac地址过滤
biee 数据库
前端与数据库交互实验报告
参加软件开发培训班
xp打开管理服务器
网络技术部部长的技能
服务器管理节点raid
软件开发工具模板
arm嵌入式系统软件开发
软件开发费用怎样入账
岩雀服务器
删除数据库的英文单词
简述常见的网络安全防范技术
服务器控制台清屏
山东计算机网络技术春考
用友u6如数据库何备份
数字媒体与网络技术哪个好
前端与数据库交互实验报告
溧水软件开发文档在线咨询
软件开发后台设计
校园网络安全和信息化制度
花生壳是安装在服务器上吗
360的网络安全公司
简要分析危险网络安全的因素
杨浦区性能优良网络技术售后保障
广东清远网络安全周