Hello,
Looking at your problem:
# 1 Your @cmd contains sudo, but at sudo sub you are calling sudo, so +you can remove sudo from commands my @cmd = ( "ls /tmp" , "ls /var" , "ls /usr" ); # 2 You can bucle your commands and execute each of them # You need split by space your command, so system won't interpret argu +ments as part of the command: sub sudo { my ($label, $ssh, @cmd) = @_; foreach my $c (@cmd) { $ssh->system({stdin_data => "$sudo_passwords{$label}\n +"}, 'sudo', '-Skp', '', '--', split " ",$c); } }
A while ago, I wrote as_root script which doesn't use sudo, but su , maybe you can get some idea from there:
For parallelize such command I use pdsh
Take a look to ansible project which have sudo support
I think it is best to play with pubkeyauthentication (passwordauthentication for automatic tasks are not good idea).
I hope this help
In reply to Re: Net::OpenSSH::Parallel with sudo commands
by i5513
in thread Net::OpenSSH::Parallel with sudo commands
by thanos1983
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |