2016-08-25 9 views
0

私のコンピュータのローカルのvi ssh ruby​​からデータベースpsqlのデータを取得します。それは同様のデータを取得するためにCMDのsshを使用して::しかし、私の終了しないプログラムやプリント出力ssh経由でcmdを使用してpsqlからデータを取得する方法Ruby

$messageid = 'xxx' 
$table_data_base = 'yyy' 
...........  
Net::SSH.start($host, $user_name, :password => $pass_word) do |ssh| 
    ssh.exec!("PGPASSWORD='pass' psql -d data_base_name -U user_name") 
    data_mail = ssh.exec!("SELECT * FROM #{$table_data_base} WHERE messageid=#{$messageid};") 
end 
puts data_mail 
+0

なぜデータベースドライバを使用しないのですか? Rubyには「pg」https://deveiate.org/code/pg/があります。必要なものはすべて実行する必要があります。 – kcdragon

+0

私はこの成功をするために 'pg'を使用していますが、私の先生は 'pg'を使いたくないと言いました。 –

答えて

0

は、私はちょうど私の質問の答えを見つける

cmd1 = "PGPASSWORD='pass' psql -d data_base_name -U user_name" 
cmd2 = "\\\"SELECT * FROM #{$table_data_base} WHERE messageid=#{$messageid};\\\"" 
Net::SSH.start($host, $user_name, :password => $pass_word) do |ssh| 
    data_mail = ssh.exec!("#{cmd1} -C#{cmd2}") 
end 

するか、我々は接続してデータを取得するために、単純なCMDのsshを使用します

data_mail = %x[ssh #{cmd1} -C#{cmd2}]

関連する問題