splunkmonitormessage= subprocess.Popen(["sudo", "/opt/splunkforwarder/bin/splunk", "add monitor", path], stdin=subprocess.PIPE, stdout=subprocess.PIPE)
(我也试过str(路径))
正在抛出错误:
命令错误:子命令'/opt/logs/node_Default_Node.log'不是 对命令'add monitor'有效。数据转发配置 管理工具。
命令: 启用local-index [-parameter] ... 禁用local-index [-parameter] ... 显示本地索引 添加[forward-server | search-server]服务器 删除[forward-server | search-server]服务器 list [forward-server | search-server]
物件: 转发服务器Splunk转发器以转发要索引的数据 搜索服务器Splunk服务器以转发搜索 本地索引Splunk服务器上的本地搜索索引
sudo /opt/splunkforwarder/bin/splunk add monitor /opt/logs/node_Default_Node.log
完全正常
我做错了什么?
答案 0 :(得分:1)
将"add"
和"monitor"
作为单独的参数传递:
splunkmonitormessage = subprocess.Popen(
["sudo", "/opt/splunkforwarder/bin/splunk", "add", "monitor", path],
stdin=subprocess.PIPE, stdout=subprocess.PIPE
)
shell是如何自然地传递它的,所以这就是它所期望的。