我无法安装net :: ssh等模块,因为我没有授权,还有其他更复杂的原因 - 所以我必须采用旧时尚的方式,
my $host = "box215";
my $cmd_proc = "/bin/ps -ef";
my $cmd_disk = "df -h";
my $cmd = "ssh -n -o ConnectTimeout=20 $host '$cmd_proc ; $cmd_disk' ";
是我到目前为止。
我想基本上从框中获取进程和磁盘空间并返回它。但是我不知道如何处理该框的密码提示。
答案 0 :(得分:1)
我会使用一个有限的权限帐户,该帐户使用不需要密码的SSH密钥对服务器进行身份验证。
答案 1 :(得分:1)
可以非常轻松地在本地安装Perl模块。这就是我经常这样做的方式
下载并解压缩CPAN模块并cd到Makefile.PL
的位置并执行以下命令。 <path>
是您拥有完全访问权限的地方。
perl Makefile.PL PREFIX=<path> LIB=<path>
make
make test
make install
要在Perl脚本中使用该模块,只需在脚本的开头添加以下内容
use lib '<path>';
答案 2 :(得分:0)
如果确实,绝对 无法安装任何 Perl模块,那么您的选项将受到更多限制。我只是接受你的话,并假设你提到的因为无法安装模块的“其他更复杂的原因”与你的老板威胁生命的CPAN过敏或同样可怕的事情有关,这些都没有得到解决通过本地安装。以下是一些(不太理想)选项:
请注意,这两个选项都可能要求您向系统管理员寻求帮助。如果他/她已经要安装/配置某些东西,你也可以要求他们为你安装一些Perl模块(Expect.pm和Net::SSH2)(当然,除非,有人可能会因此而死亡或变得非常毁容。)