通过一个命令执行脚本并输入密码

通过一个命令执行脚本并输入密码

我有一个使用 CUPS lpstat -h 命令的脚本。但是,我试图获取响应的远程服务器要求输入密码。但我需要从 Nagios 内部执行这个脚本,所以我有两个问题,希望有人能够解答。

首先,有谁知道发送 lpstat 命令时包含密码的方法吗?示例为: lpstat -h 192.168.1.106 -p PO1 地址是我的远程服务器,PO1 是该服务器上打印机的名称。 cups 似乎遗漏了一种向该命令添加密码的方法,因此它会作为提示出现。

其次,如果我有一个完整使用 lpstat 命令的脚本,是否有一种方法可以执行该脚本并从一个命令发送密码?我试图回应它,但提示不接受。执行脚本时我没有看到提示,它只是挂起,直到我输入密码并按 Enter 键,然后它完成并输出我需要的结果。

我尝试使用expect脚本,但是由于没有什么可以期待的(如果运行使用lpstat的脚本,我没有得到实际的提示),所以我只是发送了“发送”命令,这似乎执行了脚本但没有' t 传递输出。

我被困在这里,我找到的用于远程检查 CUPS 打印机状态的所有脚本都需要用户输入,除非我能找到一种方法在一行中完成并输出结果,否则我无法在纳吉奥斯。

答案1

虽然我没有找到标题的答案,但jordanm的回应将我引向了我需要的方向。我能够使用 nrpe 在打印服务器上执行脚本,因此不需要输入密码。

相关内容