コマンドラインから2つのDb2コマンドを実行する方法はありますか?(これらはPHPexec
コマンドから呼び出されます。)
db2 connect to ttt
(2番目のコマンドでは接続をライブにする必要があることに注意してくださいdb2 UPDATE CONTACT SET EMAIL_ADDRESS = '[email protected]'
私はこれを試しました:
sudo -su db2inst1 db2 connect to ttt; db2 UPDATE CONTACT SET EMAIL_ADDRESS = '[email protected]'
最初のコマンドは正しく終了しますが、2番目のコマンドはエラーメッセージで失敗します SQL1024N A database connection does not exist. SQLSTATE=08003
これをphpユーザーとして実行する必要があることに注意してください。phpユーザーsudo -u db2inst1 id
としてのコマンドは私に正しい出力を与えます。
sudoは、シェルを介して複数のコマンドを実行できます。次に例を示します。
$ sudo -s-'whoami; 私は誰' ルート ルート
コマンドは次のようになります。
sudo -u db2inst1 -s- "db2 connect to ttt; db2 UPDATE CONTACT SET EMAIL_ADDRESS ='[email protected] '"
sudoバージョンが-sを含むセミコロンで機能しない場合(特定のオプションを使用してコンパイルした場合は機能しないようです)、次を使用できます。
sudo --sh -c'whoami; 私は誰'
代わりに、基本的に同じことを行いますが、シェルに明示的に名前を付けることができます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加