2017-08-23 11 views
0

に私のスクリプト部分で私のようにする必要があります。sqlplus(会社のポリシーを実行-u sudoを使用して、他のサーバへbashスクリプト - > SSHサーバー名はsudo -uユーザーSQLPLUSのクエリ - >変数

  1. SSH
  2. - それは、変数なしで私のために働くんスクリプト

をwithing後で使用するための変数へ>他の方法、Linuxのパラメータを変更する可能性が。)

  • 保存出力。 は、私は(残念ながら、変数では動作しません)、次のアプローチをしようとしています:

    TEST_VARIABLE=$(`ssh -q -S $1 sudo -u dbabatch /some_path/dba/sqlplus $SOURCE_INSTANCE << EOF 
    select * from v$instance; 
    exit` 
    EOF) 
    

    あなたが任意のアイデアを持っていますか?

    ありがとうございます!

  • +0

    あなたのEOFはバックティックに含まれているため、構文エラーのようです。また、ドル式を使用することはバックティック –

    +0

    と重複しているだけで、バクテリアを落とし、現代のコマンド置換に 'var = $(... cmds ...)'を頼るほうが良い。がんばろう。 – shellter

    +0

    ありがとう、私はバックティックを削除しましたが、それは同じままです。 – user8476799

    答えて

    1

    は、この方法を試してください。

    TEST_VARIABLE=$(ssh -q -S $1 sudo -u dbabatch /some_path/dba/sqlplus -s $SOURCE_INSTANCE <<EOF 
    SET HEADING OFF NEWPAGE NONE TRIMSPOOL ON 
    select * from v\$instance; 
    EOF 
    ) 
    

    SET HEADING OFF NEWPAGE NONE TRIMSPOOL ONは列ヘッダとページブレーキを抑制することができる(あなたが戻って一列のみを取得する場合、実際には必要ありません)

    sqlplus -sはSQLPLUSバナーとSQLPLUSプロンプトを抑制します。

    +0

    アドバイスありがとうございます!残念ながら、私はこれを使って "未知のオプション - u"を得ています。 – user8476799

    +0

    TEST_VARIABLE = $(SSH -q -S $ 1須藤-u dbabatch/some_path/DBA/SQLPLUS -s $ SOURCE_INSTANCE << EOF SETがVの\ $インスタンスから選択 * ON NEWPAGEなしTRIMSPOOLに向かう; EOF) – user8476799

    +0

    Iコマンド置換+ sudo + ssh + hereのドキュメントを組み合わせることは難しいと思います。たぶん '/ some_path/dba/sqlplus -s $ SOURCE_INSTANCE << EOF SET HEADING OFF NEWPAGE NONE TRIMSPOOL ON select * from v \ $ instance; EOF ) 'を他のサーバーのシェルスクリプトに追加し、このスクリプトを実行するだけです。 –

    関連する問題