【问题标题】:How do i make my .bat file run linux command to remote linux如何让我的 .bat 文件运行 linux 命令到远程 linux
【发布时间】:2014-01-29 01:45:39
【问题描述】:

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

@echo off
ssh remotehost@10.1.1.10
ls

【问题讨论】:

  • 这个想法是如何在window.bat文件中运行linux命令。 linux会读取这个.bat命令并执行里面的linux命令。有人吗?

标签: linux windows batch-file ssh


【解决方案1】:

你真的应该这样做man ssh,因为这是在那里解释的(你也可以进行互联网搜索以获得答案)。

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

【讨论】:

  • 可以将批处理文件的其余部分通过管道传输到 ssh。所以严格来说,您不需要将远程主机的命令放在同一行或单独的文件中。这可能很有用,尤其是在序列很长的情况下,但这可能不在 OP 的问题范围内。
【解决方案2】:

我暗示可以在我对@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 偏移值,它必须在正确的行上。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-06
    • 1970-01-01
    • 2012-04-26
    • 2013-01-14
    • 2021-05-27
    • 2018-02-26
    • 2013-11-23
    相关资源
    最近更新 更多