linux - SSH to multiple machines using a batch file -
i have large number of linux devices want able ssh , change netmask. wanted create batch file can export list of ip addresses , run batch change netmask.
i expected script along lines of this:
$user = "username" $pass = "password" dir /b cmd.exe -arp -a>list.txt /f "tokens=1 delims= " %%a in (list.txt) ( echo ssh <ip address list.txt> $user $pass echo sudo ifconfig eth0 netmask 255.255.255.192 echo exit )
how can work? going along correct lines?
you're close. however, batch has nuances may seem counterintuitive people used *nix shell scripting.
variables need set set
command, , there can't spaces on either side of =
sign. because allowed include spaces in variable names in batch. seriously.
variables called %var%
instead of $var
, don't use symbols when you're setting values.
you don't need use cmd.exe
call arp
; it's valid batch command. because of way arp -a
output formatted, you're going want narrow things down. find
(or findstr
) close you're going grep
.
set user="username" set pass="password" arp -a|find "interface">list.txt /f "tokens=1" %%a in (list.txt) ( ssh %user%@%%a 'sudo ifconfig eth0 netmask 255.255.255.192' )
it should noted windows has no ssh client natively installed, you're going have find third-party solution that.
Comments
Post a Comment