通过ssh执行db2命令

时间:2013-03-06 16:53:15

标签: linux ssh su

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

有什么想法吗?

3 个答案:

答案 0 :(得分:0)

我会冒险猜测并且说root在hi路径中没有任何db2内容。 因为你正在使用 su db2admin 而不是 su - db2admin db2admin继承 根的环境。尝试额外抛出。

所有人都说:为什么你不能用无密码密钥作为db2admin连接?

答案 1 :(得分:0)

PATH未更新为正常的root用户PATH。指定db2text的完整路径或在用户名之前添加短划线( - )以重新加载环境变量

答案 2 :(得分:0)

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

#!/bin/bash

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

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