如何在bash脚本中为openssl-enc提供密码



我有一个bash脚本来转储mysql和生成tar,并用openssl 保护它

tar -cf ${DB}_${DATE}.tar *.sql | openssl enc -aes-256-cbc -pbkdf2 -e > ${DB}_${DATE}.tar.gz.enc  > /dev/null 2>&1

但是我的bash脚本会因为ask密码而停止如何在bash脚本中填充密码?

正如手册告诉的那样,-pass source指定了一个位置,openssl将从该位置读取要使用的密码。

假设这是一个bash脚本而不是sh脚本,您可以使用进程替换:

tar -czf "${DB}_${DATE}.tar" *.sql |
openssl enc -aes-256-cbc -pbkdf2 -e -pass file:<(echo "password") 
>"${DB}_${DATE}.tar.gz.enc" 2>/dev/null

请注意,将stderr重定向到/dev/null是个坏主意——我这么做是因为它是您的原始代码所做的,但它使故障排除变得不可能。

最新更新