使用批处理文件SSH到多台计算机

时间:2015-05-15 06:17:56

标签: linux batch-file ssh

我有大量Linux设备,我希望能够SSH并更改网络掩码。我想创建一个批处理文件来执行此操作,以便我可以导出IP地址列表,然后运行批处理来更改网络掩码。

我希望我的脚本能够像这样:

SQLite

我怎样才能让它发挥作用?我正沿着正确的路线前进吗?

1 个答案:

答案 0 :(得分:2)

你非常接近。但是,批处理有一些细微差别,这些细微差别对于习惯使用* nix shell脚本的人来说似乎有悖常理。

需要使用set命令设置变量,并且=符号的任何一侧都不能有空格。这是因为您可以批量包含变量名称中的空格。严重。

变量的调用类似%var%,而不是$var,但在设置值时不使用这些符号。

您无需使用cmd.exe来致电arp;这是一个完全有效的批处理命令。由于格式化arp -a输出的方式,您将要缩小范围。 Find(或findstr)与您前往grep的距离非常接近。

set user="username"
set pass="password"

arp -a|find "Interface">List.txt

for /f "tokens=1" %%a in (List.txt) do (
    SSH %user%@%%a 'sudo ifconfig eth0 netmask 255.255.255.192'
)

还应该注意的是,Windows没有本地安装的SSH客户端,因此您将不得不为此找到第三方解决方案。