0

別のシステムに ssh してから db2 コマンドを実行しようとしていますが、「su db2admin -c」を使用しても機能しないようですが、通常のシステム コマンドでは機能します。

#!/bin/bash

sshpass -p 'passw0rd' ssh root@server.com "su db2admin -c 'db2text start'"

これは出力です..

rob@laptop:~/Desktop$ ./script.sh
bash: db2text: command not found

何か案は?

4

3 に答える 3

0

PATH が通常の root ユーザーの PATH に更新されていません。db2text への絶対パスを指定するか、ユーザー名の前にダッシュ (-) を追加して、環境変数を再ロードします。

于 2013-03-06T17:12:09.653 に答える
0

うまくいった別の解決策..

#!/bin/bash

sshpass -p 'passw0rd' ssh root@server.com "su db2admin -c '~/sqllib/bin/db2text start'"

しかし、問題は db2 パスが変更される可能性があることです。Eric の回答を使用することをお勧めします。

于 2013-03-09T17:08:03.490 に答える
0

私は推測を危険にさらし、ルートには hi パスに db2 のものがないと言います。また、 suではなくsu db2adminを使用しているため、 db2admin db2admin はroot の環境を継承します。その余分なものを試してみてください - 投入してください。

つまり、一体なぜパスワードなしのキーで db2admin として接続しないのでしょうか?

于 2013-03-06T17:07:18.477 に答える