我正在尝试以用户身份连接到远程主机。现在我想运行一些需要 sudo 访问权限的命令。命令是:
export http_proxy=http://xxxx.xx.xx.com:8080
export https_proxy=http://xxxx-xxxx.xx.xx.com:8080
sudo /etc/init.d/filebeat restart
sudo tail -f /var/log/filebeat/filebeat
我尝试使用
执行此操作my @cmdF = "/etc/init.d/filebeat restart";
print "Restarting filebeat for $webHosts[$i]";
my @cmdF = "/etc/init.d/filebeat restart";
my $outputF = $ssh->capture({stdin_data=>"$pass\n"}, 'sudo', '-Sk', '-p', '', '-', @cmdF);
print "\nCurrent Filebeat Status : $outputF\n\n";
此刻我只执行了一个命令,但最终得到了这个错误:
sudo: /etc/init.d/filebeat restart: command not found
请帮我完成所有命令..
提前谢谢你。
sudo /etc/init.d/filebeat restart
包含三个参数(包括命令):
sudo
/etc/init.d/filebeat
restart
你改为执行这些:
sudo
-Sk
-p
-
/etc/init.d/filebeat restart
最相关的是你将两个参数合二为一,产生了垃圾。
你需要什么:
my $commands = <<'.';
export http_proxy=http://xxxx.xx.xx.com:8080
export https_proxy=http://xxxx-xxxx.xx.xx.com:8080
sudo /etc/init.d/filebeat restart
sudo tail -f /var/log/filebeat/filebeat
.
$ssh->capture( 'sh', '-c', $commands );