2016-06-15 11 views
0

を使用してのVerticaでリモートコマンドを実行:は、私はこのようなリモートコマンドを実行しようとしているのPython

ssh [email protected] 'su - vertica -c "vsql -c \"select * from tableName where timestamp > '2016-05-15 00:00:00' limit 1 \" "'" 

それは私が直接このクエリを実行するときが、

ERROR 4856: Syntax error at or near "00" at character 61 
LINE 1: ...rom tableName where timestamp > 2016-05-15 00:00:00 l... 

エラーになりますリモートマシン、それは正常に動作します。

誰かが手がかりを提供できますか?

答えて

0

sshコマンドで引用符以外の文字を使用する必要はありません。これは、(私はまた、あなたが最後に持っていたいくつかの引用ミスを固定)正常に動作する必要があります:

ssh [email protected] su - vertica -c "vsql -c \"select * from tableName where timestamp > '2016-05-15 00:00:00' limit 1 \" " 

私は本当にあなたがこれを行うべきではないことをけれども、ここで言及しているよう、私は感じます。別のユーザの下でジョブを実行するためにrootアカウントにsshを送るのはなぜですか?そのユーザーに直接SSHを送信するのはなぜですか?秘密鍵を作成し、authorized_keysのリストに、公開を追加し、代わりにこれを行う:私は、このバージョンではより多くの文字をエスケープ

ssh [email protected] /opt/vertica/bin/vsql -c \"select \* from tableName where timestamp \> \'2016-05-15 00:00:00\' limit 1 \" 

注意してください。

あなたが必要とするのは、あなたのシェル変数だけです。 bashを実行するか、.bashrcをソースする必要があるかもしれません(いくつかのディストリビューションでは警告されますが、非対話シェルのための.bashrcのブロックが修正される必要があります)。

関連する問題