在 openshift 中使用 Restic 命令时如何将变量值传递到 unix shell 中的下一行

问题描述 投票:0回答:1

我正在登录其中一个 Pod 并执行

oc exec example-nxcpj -- bash 
oc exec example-nxcpj --it -- bash

我使用下面的命令列出锁并在下一行输入密码

restic list locks -r s3:https://s3.****amazonaws.com***/zen46
enter password for repository:

如何在 shell 脚本中动态地将密码传递给上面的行?

我的脚本如下

oc exec example-nxcpj -- bash -c 'for i in /var/lib/; 
do export AWS_ACCESS_KEY_ID=*********;
export AWS_SECRET_ACCESS_KEY=********;
restic list locks -r s3:https://*****amazonaws.com****zen46;
done'

低于错误/警告

Fatal: an empty password is not a password
reading repository password from stdin
command terminated with exit code 1
shell openshift
1个回答
0
投票

restic 似乎期待来自标准输入(stdin)的密码,并抱怨密码为空。要在脚本中动态传递密码,您可以使用 echo 命令通过管道向 Restic 提供密码。

#!/bin/bash

password="your_repository_password"
export AWS_ACCESS_KEY_ID="your_access_key"
export AWS_SECRET_ACCESS_KEY="your_secret_key"

oc exec example-nxcpj -- bash -c 'for i in /var/lib/*; do
  echo "$password" | restic list locks -r s3:https://*****amazonaws.com****zen46;
done'

希望这有帮助!

© www.soinside.com 2019 - 2024. All rights reserved.