【问题标题】:Executing db2 command through ssh通过 ssh 执行 db2 命令
【发布时间】:2013-03-06 16:53:14
【问题描述】:

尝试 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

有什么想法吗?

【问题讨论】:

    标签: linux ssh su


    【解决方案1】:

    PATH 未更新为普通 root 用户 PATH。指定 db2text 的完整路径或在用户名前添加破折号 (-) 以重新加载环境变量

    【讨论】:

      【解决方案2】:

      我会冒险猜测并说 root 在 hi 路径中没有任何 db2 内容。 而且由于您使用的是 su db2admin 而不是 su - db2admin db2admin 继承 root的环境。试试那个额外的 - 扔进去。

      都说了:你到底为什么不用无密码密钥作为 db2admin 连接?

      【讨论】:

        【解决方案3】:

        另一个有效的解决方案..

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

        但问题是 db2 路径可能会改变,最好使用 Eric 的答案。

        【讨论】: