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

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

但是,当我这样做,Windows试图打开它。 这不是我想要的。 我想告诉Ubuntu来执行它。

我实际上希望能够在窗口上创build一个GUI应用程序,用户点击一个button,它会告诉ubuntu机器上的bash脚本执行。

这有可能吗?

你有没有试过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 

正如其他人所build议的,你可以使用ssh来获得一个CLI会话,或者将其包装在一个可访问的程序中,但是你可以通过networking共享来访问它,这意味着Samba已经configuration好并且正在运行 – 而且有许多方法可以让Samba执行文件(如魔术脚本,winpopups,svcctl) rtfm的更多细节。

正如我上面的评论所build议的那样,如果你的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

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

你需要一个像这样的条目:

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