在ssh中执行cassandra-cli命令时出错

时间:2013-08-21 10:08:34

标签: ssh sh cassandra-cli

我有两台服务器A和B,我在serverA中有一个shell脚本,它登录到serverB(通过ssh)并运行以下命令:

sh cassandra-cli -h <serverB> -v -f database_import.txt;

因此,当我手动执行此操作时,请按照以下步骤操作:

serverA:~$ ssh serverB
serverB:~$ sh cassandra-cli -h <serverB> -v -f database_import.txt;

当我手动执行这些步骤时,它正常工作,但是当我通过以下行在shell脚本中自动执行此过程时:

serverA:~$ssh serverB "sh cassandra-cli -h <serverB> -v -f database_import.txt;"

我收到此错误,

cassandra-cli: 46: cassandra-cli: -ea: not found

1 个答案:

答案 0 :(得分:2)

因此,正如您已经指出的那样,$JAVA通过ssh为空。

这是因为使用.bashrc登录时未提供ssh。您可以这样来源:

. ~/.bashrc

你的命令看起来像这样:

ssh serverB ". ~/.bashrc; sh cassandra-cli -h <serverB> -v -f database_import.txt;"

您也可以尝试将其放入.bash_profile,而不是每次都手动调用它。

if [ -f ~/.bashrc ]; then
    . ~/.bashrc
fi