如何将ETCD数据库完整导出为JSON并自动Base64解码键值?
如何用命令行导出ETCD数据库为JSON并自动Base64解码键值?
我需要一个简便的命令行方法,将整个ETCD数据库导出为JSON文件,同时自动对key和value字段进行Base64解码。目前我已经能执行以下命令(示例输出单个键值对):
./etcdctl get "" --prefix -w json | jq -r ".[] | .[] "
输出示例:
{ "key": "YnktZGV2L21ldGEvc25hcHNob3RzL3Jvb3QtY29vcmQvcGFydGl0aW9ucy80NDAwNDc0MjQ2MTgzNjUxNzAvNDQwMDQ3NDI0NjE4MzY1MTcxX3RzNDQwMDQ5NDg5ODkxODE5NTI0", "create_revision": 44536, "mod_revision": 44536, "version": 1, "value": "CPOB0OXRmdeNBhIIX2RlZmF1bHQYhIDgxN/V140GIPKB0OXRmdeNBg==" }
但我需要将整个数据库的所有键值都解码为可读格式,请问该怎么操作?
最终解决方案
经@Jeff Mercado帮助后得到的可行步骤:
- 先导出原始数据到文件:
./etcdctl get "" --prefix -w json | jq '.[]' > etcd_filter.txt
- 手动清理
etcd_filter.txt的格式,将内容整理为标准的对象数组格式:[{}, {} ... {}] - 对数组中的每个对象进行Base64解码:
cat etcd_filter.txt | jq '.[] | (.key, .value) |= @base64d'
内容的提问来源于stack exchange,提问作者R2D2
相关产品推荐
相关产品推荐

