-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
#16466 fixing based on review comments:
To add the rdbtools into base docker. Move saidump.sh from host to syncd docker container.
- Loading branch information
1 parent
65fc011
commit aaac734
Showing
4 changed files
with
47 additions
and
50 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
#!/bin/bash | ||
set -e | ||
|
||
function debug() | ||
{ | ||
/usr/bin/logger "$1" | ||
} | ||
|
||
save_saidump_by_rdb() { | ||
local filepath="/var/run/redis/sonic-db/database_config.json" | ||
|
||
#Get hostname, port, redis directory | ||
local redis_config=$(python3 -c " | ||
import json | ||
with open('$filepath') as json_file: | ||
data = json.load(json_file) | ||
print(data['INSTANCES']['redis']['hostname'], data['INSTANCES']['redis']['port'], data['INSTANCES']['redis']['unix_socket_path'])") | ||
|
||
#split | ||
redis_config=(${redis_config// / }) | ||
local hostname=${redis_config[0]} | ||
local port=${redis_config[1]} | ||
local redis_dir=`dirname ${redis_config[2]}` | ||
debug "saidump.sh: hostname:$hostname, port:$port, redis_dir:$redis_dir" | ||
|
||
debug "saidump.sh: [1] Config Redis consistency directory." | ||
redis-cli -h $hostname -p $port CONFIG SET dir $redis_dir > /dev/null | ||
|
||
debug "saidump.sh: [2] SAVE." | ||
redis-cli -h $hostname -p $port SAVE > /dev/null | ||
|
||
debug "saidump.sh: [3] Run the rdb command to convert the dump.rdb into a JSON file." | ||
rdb --command json $redis_dir/dump.rdb | tee $redis_dir/dump.json > /dev/null | ||
|
||
debug "saidump.sh: [4] Run saidump -r to update the JSON file's format, and then get the result in the standard output." | ||
saidump -r $redis_dir/dump.json -m 100 | ||
|
||
debug "saidump.sh: [5] Clear the temporary files." | ||
rm -f $redis_dir/dump.rdb | ||
rm -f $redis_dir/dump.json | ||
} | ||
|
||
save_saidump_by_rdb |