ahm*_*raj 7 kubernetes kubernetes-pod
我正在编写一个shell脚本,需要登录pod并在kubernetes pod中执行一系列命令.
下面是我的sample_script.sh
kubectl exec octavia-api-worker-pod-test -c octavia-api bash
unset http_proxy https_proxy
mv /usr/local/etc/octavia/octavia.conf /usr/local/etc/octavia/octavia.conf-orig
/usr/local/bin/octavia-db-manage --config-file /usr/local/etc/octavia/octavia.conf upgrade head
运行此脚本后,我没有得到任何输出.任何帮助将不胜感激
Ahm*_*gle 30
您是否将所有这些命令作为单行命令运行?首先,这些命令之间没有;
或没有&&
.因此,如果将其作为多行脚本粘贴到终端,可能会在本地执行.
其次,告诉bash执行某些事情,你需要:bash -c "command"
.
试试这个:
$ kubectl exec POD_NAME -- bash -c "date && echo 1"
Wed Apr 19 19:29:25 UTC 2017
1
Run Code Online (Sandbox Code Playgroud)
你可以像这样多线:
$ kubectl exec POD_NAME -- bash -c "date && \
echo 1 && \
echo 2"
Run Code Online (Sandbox Code Playgroud)
小智 10
以下应该有效
kubectl -it exec podname -- bash -c "ls && ls"
bin dev etc home proc root run sys tmp usr var bin
dev etc home proc root run sys tmp usr var
Run Code Online (Sandbox Code Playgroud)
如果上述命令不起作用,则尝试bash
用以下命令之一替换/bin/bash
,sh
或者/bin/sh
在这里发帖是因为谷歌搜索仍然会把你带到这篇文章......
我想放弃使用 HEREDOC 作为额外的可能性。
kubectl exec -i --tty=false PODNAME -- bash << EOF
echo "insert all your commands here."
echo "this subprocess will even pickup any variables you have in"
echo "the shell script that is calling this"
EOF
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
15968 次 |
最近记录: |