通過(guò)以下腳本向 xhttpcache 里批量導(dǎo)入磁盤文件, 以下腳本會(huì)將參數(shù)指定的目錄下的文件都導(dǎo)入到 xhttpcache 里.
#!/bin/bash redis_cmd="redis-cli -p 7379 -x set " function batch_convert() { for file in `ls $1` do if [ -d $1"/"$file ] then batch_convert $1"/"$file else key=$1"/"$file #echo 33 $redis_cmd ${key#*/} $1"/"$file $redis_cmd ${key#*/} < $1"/"$file fi done } batch_convert $1
通過(guò)以下shell腳本,可以把 xhttpcache 里的數(shù)據(jù)按目錄文件的形式導(dǎo)出到磁盤。
#!/bin/sh # # xHttpCache數(shù)據(jù)備份腳本 # By: xSky usage() { echo "++++++++++++++++++++++++++++++++++++++++++++++++++++" echo "+ xHttpCache data export shell tools by:xSky " echo "+ usage: " echo "+ $0 data_dir redis_host redis_port " echo "++++++++++++++++++++++++++++++++++++++++++++++++++++" } #判斷參數(shù) if [ $# -ne 3 ]; then usage exit 0 fi data_dir=$1 redis_host=$2 redis_port=$3 echo $data_dir $redis_host $redis_port if [ -d $data_dir ];then #redis-cli -p 6579 scan a z | awk '{print "redis-cli -p 6579 get "$0 " >"$0}'|sh cd $data_dir redis-cli -h $redis_host -p $redis_port scan a z | while read line do echo $line bdir=`expr index $line "/"` file_dir=${line%/*} file_name=$line if [[ $bdir -gt 0 ]];then #echo 1 $bdir $file_dir $file_name mkdir -p $file_dir fi redis-cli -h $redis_host -p $redis_port get $line > $line done cd - else echo [ERROR] the dir $data_dir do not exist exit 0 fi
更多建議: