小编Mar*_*osi的帖子

JSch中'shell'通道和'exec'通道之间有什么区别?

我希望能够将Java应用程序中表示为字符串的许多连续命令发送到SSH服务器以供执行.我应该使用:

Channel channel = session.openChannel("shell");
Run Code Online (Sandbox Code Playgroud)

-要么-

Channel channel = session.openChannel("exec");
Run Code Online (Sandbox Code Playgroud)

java ssh jsch

28
推荐指数
4
解决办法
3万
查看次数

如何使用Java通过Windows/cygwin执行unix命令

我想完成两件事:

  1. 我在Windows7上运行cygwin来执行我的unix shell命令,我需要通过编写Java应用程序来自动化该过程.我已经知道如何使用'Process class'和Java通过Java来使用windows shell Runtime.getRuntime().exec("cmd /c dir").我需要能够使用unix命令执行相同的操作:ie:ls -la等等.我该怎么看?

  2. 有没有办法记住shell的状态?解释:当我使用:时Runtime.getRuntime().exec("cmd /c dir"),我总是得到我的主目录列表.如果我这样做Runtime.getRuntime().exec("cmd /c cd <some-folder>")然后再做Runtime.getRuntime().exec("cmd /c dir"),我仍然会得到我的主文件夹的列表.有没有办法告诉进程记住它的状态,就像常规shell一样?


似乎bashPaŭlo提出的命令行不起作用:

C:\cygwin\bin>bash -c ls -la
-la: ls: command not found
Run Code Online (Sandbox Code Playgroud)

我无法搞清楚技术细节.

这是我的代码:

p = Runtime.getRuntime().exec("C:\\cygwin\\bin\\bash.exe -c ls -la");
reader2 = new BufferedReader(new InputStreamReader(p.getInputStream()));
line = reader2.readLine();
Run Code Online (Sandbox Code Playgroud)

line 最终得到一个空值.


我把它添加到我的.bash_profile:

#BASH
export BASH_HOME=/cygdrive/c/cygwin
export PATH=$BASH_HOME/bin:$PATH
Run Code Online (Sandbox Code Playgroud)

我还添加了以下内容:

系统属性 - >高级 - >环境变量 - >用户variebales - >变量:BASH,值:c:\cygwin\bin

依然没有...

但是,如果我执行此操作,它会工作!

p = Runtime.getRuntime().exec("c:\\cygwin\\bin\\ls …
Run Code Online (Sandbox Code Playgroud)

java unix shell cygwin windows-7

10
推荐指数
1
解决办法
2万
查看次数

停止mongodb动态创建dbs和集合

有没有办法在查询中看到它时立即关闭mongo偶尔创建dbs和集合的能力.我一直在mongo控制台上运行查询并错误输入数据库或集合名称,导致mongo只创建一个.应该有一个开关让mongo只显式创建dbs和集合.我在文档上找不到一个.

mongodb

10
推荐指数
2
解决办法
3294
查看次数

JSch中每个会话可以打开多少个频道是否有限制?

JSch中每个会话可以打开多少个频道是否有限制?我试图打开的cannels类型为"ChannelShell"

我得到一个"com.jcraft.jsch.JSchException:通道未打开." 当我尝试打开第11个频道即频道[10]这是否意味着每个会话最多可以有10个频道?

PS我不明白如何满足stackoverflow的质量标准.

jsch

7
推荐指数
1
解决办法
8360
查看次数

如何使用具有多个生成器选项的thrift java代码生成器

我正在查看thirft代码生成器的文档.它是这样开始的:

Usage: thrift [options] file
Options:
  -version    Print the compiler version
  -o dir      Set the output directory for gen-* packages
               (default: current directory)
  -out dir    Set the ouput location for generated files.
               (no gen-* folder will be created)
  -I dir      Add a directory to the list of directories
                searched for include directives
  -nowarn     Suppress all compiler warnings (BAD!)
  -strict     Strict compiler warnings on
  -v[erbose]  Verbose mode
  -r[ecurse]  Also generate included files
  -debug      Parse debug trace to stdout
  --allow-neg-keys  Allow negative …
Run Code Online (Sandbox Code Playgroud)

thrift

6
推荐指数
1
解决办法
4962
查看次数

即使实例处于完美健康状态,Elastic Beanstalk 也会报告 5xx 错误

我需要设置一个 api 应用程序来收集要在推荐引擎中使用的事件数据。这是我的设置:

  • 带有负载均衡器和自动缩放组的 Elastic Beanstalk 环境。
  • 我有 2 个 t2.medium 实例在负载均衡器后面运行。
  • EBS 配置为 64 位 Amazon Linux 2016.03 v2.1.1 运行 Tomcat 8 Java 8
  • 此外,我有 8 个 t2.micro 实例,用于对 api 进行高负载测试,每秒发送数千个请求以供 api 处理。
  • 我使用 Locust ( http://locust.io/ ) 作为我的负载测试工具。
  • Locust 运行的每个 t2.micro 实例最多可以发送约 500req/sec

当 reqs/sec 低于 1000,也许是 1200 时,一切正常。一旦超过,我的负载均衡器报告它背后的一些实例报告 5xx 错误(附加)。我还尝试了负载均衡器后面的 4 个实例,尽管开始时速度高达 3000req/sec,但不久之后,ebs 健康工具和 Locust 都报告了 503 和 504,而所有实例都处于完美的健康状态根据ebs Health Overview中的实际数字,显示只有10%-20%的CPU利用率。

我在配置 env 时遗漏了什么吗?似乎无论我在负载均衡器后面有多少台机器,env 每秒处理的请求都不超过 1000-2000 个。

在此处输入图片说明


编辑:现在我确定是 ELB 导致了问题,而不是实例。

我对 10 个模拟用户进行了负载测试。每个用户发送大约 1req/sec 并且负载增加 10 个用户/秒到 …

amazon-web-services locust amazon-elastic-beanstalk

6
推荐指数
1
解决办法
3187
查看次数

如何使用JSch SSH连接到另一台SSH服务器后面的服务器?

我需要能够从Java程序ssh到远程服务器,从那里SSH到另一台服务器.我的客户端上有两台服务器的凭据.

这些命令将作为常规字符串(无用户输入)从应用程序内自动传递.我需要能够在第二台服务器上运行这些自定义命令,并能够根据输出和一些简单的逻辑决定在运行时期间要发出什么命令.

我可以使用JSch来做到这一点,如果是的话,我应该从哪里开始研究?(例子,信息)

================================================== ===========

添加:

线程"main"中的异常com.jcraft.jsch.JSchException:UnknownHostKey:host.net.RSA密钥指纹是'blahblahblah'

到目前为止,我通过修改known_hosts文件并在那里手动添加主机来解决这个问题.我可以通过设置一个选项告诉JSch在询问这个YES-NO问题时自动按YES来绕过这个小问题吗?

java ssh jsch

5
推荐指数
1
解决办法
9289
查看次数

机器学习中的逐点和成对排名有什么区别

我一直在读关于成对排名的论文,这是我没有得到的:

逐点和成对排名之间的训练/测试数据有何不同?这是我一直在阅读的论文:http: //www.cs.cornell.edu/people/tj/publications/joachims_02c.pdf

在那里,它表示pairwaise排名中的数据点是两个链接之间的不平等:

[line].=.[两个链接之间的不等,即目标] qid:[qid] [[链接1和2的特征]:[值1和2]]#[info]

但是,RankLib确实支持像RankNet和RankBoost这样的成对调度器,但它使用它的数据点格式是逐点的

[line].=.[绝对排名,即目标] qid:[qid] [feature1]:[value1] [feature2]:[value2] ...#[info]

有什么我想念的吗?

machine-learning ranking ranking-functions

4
推荐指数
1
解决办法
2125
查看次数

如何从网页表单上的文本框中获取输入

这是在Grails!这是一个非常基本的事情,我很难理解.

我在index.gsp中有这个

<g:form name="testForm" url="[controller:'test',action:'index']">
   <g:textField name="Input A" value="${Input1}">  </g:textField>
   <g:textField name="Input B" value="${Input2}"> </g:textField> 
</g:form>
Run Code Online (Sandbox Code Playgroud)

我在TestController类中也有这个:

class TestController {

    def index = {
        def Input1
        def Input2
    }
}
Run Code Online (Sandbox Code Playgroud)

我想获取用户在网页上输入的两个输入,并将它们保存到控制器上的相应字段(Input1,Input2).

我该怎么办呢?

谢谢

html forms grails

2
推荐指数
1
解决办法
7756
查看次数

无法将Enter绑定到Emacs中的'换行符和缩进!!! 很烦人

无法newline-and-indent在Emacs中绑定Enter !很烦人.

通过将'mode'更改为ruby并且仍然没有,我已经尝试了以下线程中的所有内容:

如何让Emacs自动缩进我的C代码?

我知道问题是RETURN关键,因为如果我绑定其他东西,工作正常.我试过[enter],(kbd "enter"),(read-kbd-macro "enter"),(kbd "RET")


后续行动1.

这就是我得到的 C-hkRET

RET运行命令newline,这是一个交互式编译的Lisp函数.

它与RET绑定.

(换行和可选的ARG)

插入换行符,如果换行,则移动到新行的左边距.如果use-hard-newlines' is non-nil, the newline is marked with the text-property很难'.使用ARG,插入许多换行符.呼叫auto-fill-function' if the current column number is greater than the value of填充列'和ARG是零.

我不知道该怎么做或如何弄清楚它是否是一个全局或局部绑定阻碍了它.试图重新映射C-j 也不起作用.

emacs

2
推荐指数
1
解决办法
3127
查看次数

如何调用方法作为参数?

这是我的一段代码:(我要做的是:在我的主类中定义一个方法"renamingrule",实例化我的另一个类"renamescript"的实例并调用它的重命名方法作为参数传递我在主类中定义的"renamingrule"方法.在RenamScript类中一切都很好,没有错误,但我不知道如何从我的主类/方法调用脚本类的重命名方法.谢谢)

public class RenameScript2 {

    ...

    public void rename(Method methodToCall) throws IOException, IllegalAccessException, InvocationTargetException {


    try
    {
        ...

            String command = "cmd /c rename "+_path+"\\"+"\""+next_file+"\" "
                    +"\""+methodToCall.invoke(next_file, next_index)+"\"";
            p = Runtime.getRuntime().exec(command);

    }catch(IOException e1) {} catch(IllegalAccessException IA1) {}  catch(InvocationTargetException IT1) {} ;


    }//end of rename


} //end of class
//=======================================

public class RenameScriptMain2 {

    public static String RenamingRule(String input, int file_row)
    {
        String output = "renamed file "+(file_row+1)+".mp3";
        return output;
    }

    public static void main(String[] args) throws IOException
    {
        RenameScript2 renamer …
Run Code Online (Sandbox Code Playgroud)

java methods

1
推荐指数
1
解决办法
147
查看次数

我可以使用 Jsch 来伪造与本地主机的 ssh 连接吗?

我花了很多时间开发一个应用程序,该应用程序将使用 JSch 并通过 ssh 连接到远程计算机以执行一些命令行操作。但是我了解到这些操作也可以在本地主机上执行(我的应用程序在本地主机上运行)。现在...我懒得重写所有代码,老实说我感觉很糟糕,因为我真的很喜欢 JSch。有没有办法欺骗 JSch 连接到 localhost,或者以某种方式告诉它只使用 localhost,即使代码另有说明?:)

PS,如果不可能,为什么常规 Proccess 类不像 JSch 那样支持 setOutputStream 和 setErrStream,而只支持 getInputStream 和 getErrorStream ?

java ssh jsch

1
推荐指数
1
解决办法
5167
查看次数

vim mappings噩梦

我正在使用MacVim,我正在尝试更改基本的默认键映射,但我失败了.我不知道为什么它如此复杂.这就是我想要做的事情:(请告诉我把什么放在我的.gvimrc中)

  • 重新映射到^的主页(在imode中使用并最终以imode结尾)
  • remap结束到$(在imode中使用并最终以imode结尾)
  • 将Shift + anyArrowKey重新映射到通常的选择内容(在imode中使用并最终以imode结尾)

基本上,我试图获得macvim的常用编辑功能.

请记住,首先需要进行某种取消.我已经尝试过添加映射,但它不起作用.

如果您可以粘贴我可以复制/粘贴到我的.gvimrc文件的部分,那就太棒了.

这就是我的映射的样子:(来自运行:地图)

 n  gx            <Plug>NetrwBrowseX
       <M-Down>      }
       <D-Down>    * <C-End>
       <M-Up>        {
       <D-Up>      * <C-Home>
       <M-Right>   * <C-Right>
       <D-Right>   * <End>
       <M-Left>    * <C-Left>
       <D-Left>    * <Home>
    n  <Plug>NetrwBrowseX * :call netrw#NetrwBrowseX(expand("<cWORD>"),0)<CR>
    v  <BS>          "-d
    v  <D-x>         "*d
    v  <D-c>         "*y
    v  <D-v>         "-d"*P
    n  <D-v>         "*P
Run Code Online (Sandbox Code Playgroud)

vim macvim

1
推荐指数
1
解决办法
681
查看次数