home 首页 » 精彩日志 » 日志查看

用EditPlus通过ssh运行远程脚本

iwind 译
 2008-03-12 03:40:12 

对于那些需要在远程机器上(比方说一个利用samba共享你的被访问文件的linux)运行什么的EditPlus用户们,我搞出来了一个比较方便的东东.

我的情况是,我们使用templating处理那些需要每次都要重新生成的文件. 在以前, 这意味着得开两个窗口 - 一个是EditPlus,而另外一个是工作目录的ssh会话.今天早晨,在一些"肯定有更好的方法"的思考中的一片刻,我做了一些尝试,并找到了这个步骤:

- 使用EditPlus的 "用户工具(user tools)" , 建立一个和远程机器的连接
- 通过plink(Windowsvia plink (Win) ssh到那台机器
- 然后通过这个接口执行命令

这看起来有一点PHP技巧才能使之完全正确地工作,不过以下就是如何去做到这点的方法:

  1. 下载plink
  2. 在EditPlus中,到工具(Tools) -> 配置用户工具(Configure User Tools)
  3. 点击 "添加(Add)" 并选择 "程序(Program)"
  4. 在"菜单文本(Menu Text)"中把程序名修改成你喜欢的
  5. 在命令(Command)框中添加需要执行的命令.
    这里,我想通过ssh连接到远程机器,并运行命令把我正在处理的文件重新提交.这是我所输入的命令:
    plink.exe user@server -pw mypass /usr/local/bin/retemp.php
  6. 添加一个参数
    这里我输入 '$(FilePathNoDrv)'(当然,需要用引号引起来),给文件附加路径,而且不带盘符
  7. 单击 "捕捉输出(Capture Output)" 和"保存打开的文件(Save open files)"
  8. 点击 "确定(Ok)" 保存设置

这样你就可以到工具(Tools)菜单查看它的组合键,就这样,一切都设置好了.EditPlus比较好的一点是,它给出了一个在运行工具时同时保存文件的选项.而对我而言,只是少了个别的快捷键.

在另外一端的PHP脚本需要做一点事情,以正确地处理EditPlus的输入- 以下是个例子:

代码:
  1. #!/usr/local/bin/php
  2.  
  3. $in=file_get_contents("php://input");
  4. exec('/usr/local/bin/template.sh /www/web/'.str_replace('\\','/',$_SERVER['argv'][1]),$out);
  5. //print_r($out);

 

为了万一你需要输出一些调试信息,我保留了$out变量.因为脚本传值的方式(毕竟是Windows软件),我们需要处理反斜杆(\)以便在linux文件系统下工作.所以,在EditPlus中,我的路径类似于 H:\www\docroot\myfile.tpf,脚本将会把它映射到 /www/docroot/myfile.tpf,并执行template.sh, 然后被重新发布.

就这些 - 希望对你有所帮助!

收藏到网摘:

 
评论:共 
3
 条
said   hao 发表于2008-03-20 11:41:11

hao
said   YANGFREE 发表于2008-03-25 22:23:32

感觉翻译的很生硬。。看不下去
said   YANGFREE 发表于2008-03-25 22:24:18

回复怎么这么快啊?难道是错觉?再回一次。。。。。
多加几个字!!!

~~~~~~~~~~~~~~~~~~~
发表评论:
大名:*
网址:   http://sitename
评论:*