我有大量Linux设备,我希望能够SSH并更改网络掩码。我想创建一个批处理文件来执行此操作,以便我可以导出IP地址列表,然后运行批处理来更改网络掩码。
我希望我的脚本能够像这样:
SQLite
我怎样才能让它发挥作用?我正沿着正确的路线前进吗?
答案 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客户端,因此您将不得不为此找到第三方解决方案。