我有一个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
是个坏主意——我这么做是因为它是您的原始代码所做的,但它使故障排除变得不可能。