【问题标题】:Python or Perl script to run desired commands in another OS在另一个操作系统中运行所需命令的 Python 或 Perl 脚本
【发布时间】:2013-03-15 06:57:05
【问题描述】:

目前我正在使用 Windows 操作系统,我有一个批处理文件。使用批处理文件我可以启动 SSH 客户端,然后我可以连接到其他基于 Linux 的操作系统。这个特定的操作系统有一个命令提示符,但没有 GUI 来提供输入,所以我想在 Windows 中编写一个 Perl 或 Python 脚本,然后我会将它嵌入到批处理文件中以在那里执行命令。可能吗?如果是这样,我需要 Perl 或 Python 脚本。在任何其他脚本中,如果可能,请告诉我。我不限于特定的脚本。

【问题讨论】:

  • 您能否说明您想要实现的目标?是否要通过ssh 连接到另一台机器,然后在远程机器上运行命令?
  • 我有一块板,它连接到一个路由器(有一个终端)。我可以在该终端中运行命令,就像这些命令是该板的输入,然后该板将处理命令,然后它会给出输出,我可以在该终端中看到。现在,我可以通过在 Windows 中使用批处理文件来启动这个终端(即可以连接,可以使用批处理文件启动 SSH 客户端)。我需要一个脚本来从我的窗口本身(如输入自动化)在此终端中运行命令。你清楚了吗?
  • 对不起,我还是不明白。
  • 我和我的朋友想要做的是为我们提供一个嵌入式系统,该系统托管一个操作系统(基于 linux)。使用 Ayera Teraterm,我们可以连接到那个嵌入式系统。使用 teraterm 脚本我们也可以做一些测试。让我现在无法在 teraterm 上键入任何内容,还有其他机会我们可以使用任何类型的脚本执行测试吗???

标签: linux ssh batch-file


【解决方案1】:

如果您想以您描述的方式在远程机器上运行命令,在您的情况下是板,有几个选项:

一种方法是从终端使用 here 脚本(在此示例中列出日志)

$ ssh user@remote_name_or_ip <<"ENDOFCMD"
echo "Logs from " $(uname -a)
ls -ltr /var/log/*.log
ENDOFCMD

或者,您可以将您选择的脚本放在远程计算机上并通过 ssh 连接运行它:

$ ssh user@remote_name_or_ip yourScript.sh

或者如果它们和第一个示例一样简单,直接运行它们:

$ ssh user@remote_name_or_ipssh 'echo $(uname -a); ls -ltr /var/log/*.log'

【讨论】:

  • 我正在重写整个问题,仔细研究。,是否可以使用批处理文件建立一个只有一个ip的ssh会话,使用脚本文件发送一些命令,我​​们可以得到输出写入文件或至少在终端(我们连接到的,ssh 会话)上?
  • 我假设您的意思是在连接期间不输入密码,如果可以的话。您需要设置身份验证密钥对,这非常简单。 See here 的步骤。
  • :: 这根本不是我的问题,我可以连接到终端,但我想从我的主机本身使用任何脚本运行命令(将命令合并到脚本文件中),然后它将使用批处理文件自动执行(我将在我的批处理文件中包含此脚本文件)。这就是我的问题..!
  • 最好编辑问题,以便每个人都清楚您想要实现什么以及您认为问题是什么。如果您认为这样会更容易,请使用屏幕抓取。
【解决方案2】:

使用plumbum 轻松完成。见here。

【讨论】:

    猜你喜欢
    • 2013-06-12
    • 1970-01-01
    • 1970-01-01
    • 2014-03-18
    • 1970-01-01
    • 1970-01-01
    • 2017-03-15
    • 2019-02-05
    • 2013-09-17
    相关资源
    最近更新 更多