如何在bash脚本中使用authorize在redis上运行命令?

f3temu5u  于 2022-12-28  发布在  Redis
关注(0)|答案(1)|浏览(137)

我有redis版本6.2.2 AUTH,用户名和密码在centos 7上
我希望运行带有bash脚本的命令flushall
我尝试用echo命令发送,但失败了
我不知道如何发送2个命令
如何使用bash脚本发送AUTH myusername mypassword命令和flushall命令之后的命令?

hc8w905p

hc8w905p1#

我也遇到了同样的问题,所以我做了一些研究,找到了一种方法:首先,如果您有一个只使用requiredpass而没有配置用户的数据库,您可以简单地使用标志**-a**,如下所示:

redis-cli -a mysupersecurepassword FLUSHALL

这样做的问题是它在你的历史记录中存储了完整的命令(以及密码),所以你可能想更进一步:

export REDISCLI_AUTH=mysupersecurepassword

这里我们所做的是将名为REDISCLI_AUTH的环境变量设置为密码本身。注意,我们使用了一个前导空格来告诉Linux我们不希望将其存储在历史记录中。一旦我们这样做了,就不需要使用-a标志,您将被自动验证。
但是如果您遇到了和我一样的问题,需要同时使用用户名和密码来进行身份验证,那么目前唯一的方法就是使用**-u**标志在URI中指定这两个参数:

redis-cli -u redis://user:password@host:port/dbnum: FLUSHALL

除此之外,你现在能做的也不多.一个可能的解决方案是把你的uri从你的历史记录中隐藏起来,把它设置成一个环境变量,然后在命令中使用它:

export REDIS_URI=redis://user:password@host:port/dbnum:
redis-cli -u $REDIS_URI FLUSHALL

来源:REDIS-CLI文档

相关问题