ssh执行远程命令和bash -c string的用法

说明:

今天在学习k8s的Run a Replicated Stateful Application (运行一个有状态应用的副本)时,官网上给出StatefulSet yaml配置文件中出现如下内容:

spec:

initContainers:

- name: init-mysql

image: mysql:5.7

command:

- bash

- "-c"

- |

set -ex

# Generate mysql server-id from pod ordinal index.

[[ `hostname` =~ -([0-9]+)$ ]] || exit 1

ordinal=${BASH_REMATCH[1]}

echo [mysqld] > /mnt/conf.d/server-id.cnf

# Add an offset to avoid reserved server-id=0 value.

echo server-id=$((100 + $ordinal)) >> /mnt/conf.d/server-id.cnf

# Copy appropriate conf.d files from config-map to emptyDir.

if [[ $ordinal -eq 0 ]]; then

cp /mnt/config-map/master.cnf /mnt/conf.d/

else

cp /mnt/config-map/slave.cnf /mnt/conf.d/

fi

其中的bash -c有些不明白,所以man bash查看下:

-c string If the -c option is present, then commands are read from string. If there are arguments after the string, they are assigned to the positional parameters, starting

with $0.

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐