尝试 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
有任何想法吗?
我会冒险猜测并说 root 在 hi 路径中没有任何 db2 东西。由于您使用的是su db2admin而不是su - db2admin db2admin 继承了 root 的环境。试试那个额外的 - 扔进去。
话虽如此:你到底为什么不以 db2admin 的身份连接 w/ 无密码密钥?
PATH 没有更新为普通的 root 用户 PATH。指定 db2text 的完整路径或在用户名前添加破折号 (-) 以重新加载环境变量
另一个有效的解决方案..
#!/bin/bash
sshpass -p 'passw0rd' ssh root@server.com "su db2admin -c '~/sqllib/bin/db2text start'"
但问题是 db2 路径可能会改变,最好使用 Eric 的答案。