尝试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
有什么想法吗?
答案 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的答案。