如何让我的.bat文件运行linux命令到远程linux

时间:2014-01-23 02:38:31

标签: linux windows batch-file ssh

以下是我当前的.bat内容。我在窗口cmd上运行它。它将连接到远程linux服务器并提示我密码。但是在我输入密码并登录为remotehost后,linux服务器将不会运行我的ls命令。请帮忙。

@echo off
ssh remotehost@10.1.1.10
ls

2 个答案:

答案 0 :(得分:1)

你真的应该man ssh,因为这里有解释(你也可以通过互联网搜索来获得答案)。

但是,无论如何要回答你的问题:你应该把你想要在远程机器上运行的所有命令与实际的ssh命令放在同一行,例如运行目录列表和grep所有包含“foo”的文件, :ssh <user>@<host> 'ls|grep foo'

答案 1 :(得分:0)

我暗示可以在我对@Sami Laine的评论中将代码放在批处理文件中。这就是它的样子:

@echo off 
setlocal
    :: Run the end of this file in remote computer
    more +8 %0 | plink user@remote.compu.ter "tr -d '\r'| bash"
endlocal
exit /b 0

:: remote bash stuff to be bootstrapped

pwd
ls -h

我正在使用plink,因为我已安装但它应该适用于大多数ssh风格。也适用于ksh和zsh。也许还有tcsh csh等。这有时候很有用。相同的技术可以用于很多事情。小心它必须在右边的+8偏移值。