从远程 Windows 机器在 Ubuntu 上执行 Bash 脚本?

从远程 Windows 机器在 Ubuntu 上执行 Bash 脚本?

我在 ubuntu 10.4 机器上有一个 bash 脚本。它是共享的,我可以从我的 win7 机器访问它\\LINUX-SERVER\bash_repo\make-live

但是当我这样做时,Windows 会尝试打开它。这不是我想要的。我想告诉 ubuntu执行它。

我实际上希望能够在 Windows 上构建一个 GUI 应用程序,用户单击一个按钮,它会告诉 ubuntu 机器上的 bash 脚本执行。

这一切可能吗?

答案1

您是否尝试过 PuTTY 制造商提供的 plink? http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

您应该能够在 ubuntu 机器上运行该脚本,如下所示:

plink.exe -ssh -pw pass -noagent user@linux-server /path/to/your/script/make-live

答案2

正如其他人所建议的,您可以使用 ssh 来获取 CLI 会话或将其包装在可访问的程序中,但是您可以将其作为网络共享进行访问意味着 Samba 已配置并正在运行 - 并且有多种方法可以让 Samba 执行文件(例如魔术脚本、winpopups、svcctl)翻譯更多细节。

答案3

正如我上面的评论所建议的,如果您的 ubuntu 机器上运行着一个 Web 服务器,您就可以从 PHP 执行脚本。

像下面这样的小 PHP 脚本就足够了:

<?php
$output = shell_exec('bash /path/to/your/script');
echo "$output";
?>

将 PHP 代码保存在诸如的文件中/var/www/exec.php,然后将您的浏览器从任何机器指向该 URL http://your_ubuntu_machine_ip/exec.php

请注意,该脚本将以用户(默认的 apache web 服务器用户)身份执行www-data。如果您想使用 sudo 运行特权命令,则需要使用 将www-data用户添加到sudoers文件visudo

您需要一个类似这样的条目:

www-data   ALL=NOPASSWD: /path/to/command

相关内容