clickhouse数据备份恢复以及保留指定备份
最近在对clickhouse做备份,以及设置保留策略。定时任务的实现使用的是宝塔提供的
备份脚本
#!/bin/bash
 
#获取当前日期,并命名备份文件
filename="testtb_`date +%Y%m%d`.tsv"
 
#判断备份文件是否已存在
if [ ! -f " /home/backup/$filename" ]; then
#如不存在,执行备份命令
        clickhouse-client --password 12 --query="select * from testdb.testtb" > /home/backup/$filename
else
#如已存在,打印"文件存在"
        echo "文件已存在"
fi
 
#将数据导入到数据库命令
# cat  /home/backup/$filename | clickhouse-client --password 12 --query "insert into testdb.testtb FORMAT TSV"
保留最近7天的备份文件并删除其他备份文件
back_path=/home/backup
find $back_path/ -mtime +7  -name "testtb_*.tsv" -exec rm -rf {} \;
# 命令说明
find  筛选指定目录下文件
-mtime +7  根据当前时间筛选出往前 7 天的文件
-name  查找的文件,可以模糊匹配
-exec  对上一步结果进行删除处理
保留最新3个备份文件并删除其他备份文件
back_path=/home/backup
ls $back_path -t |grep 'testtb_' | sed -n '4,$p' | xargs -I {} rm -rf {}
# 命令说明
ls -t  列出文件,并按最后更新时间倒序
grep 'testtb_'  过滤出包含'testtb_' 的文件或文件夹
sed -n ‘4,$p’  对上一步的结果再次进行过滤,保留第4行到最后一行,即除最新3个文件之外的文件或目录
xargs -I {} rm -rf {}  对上一步筛选出的文件或目录,进行删除处理
欢迎大家留言,以便于后面的人更快解决问题!另外亦欢迎大家可以关注我的微信公众号,方便利用零碎时间互相交流。共勉!

    ------愿来生只做陌上的看花人,无须入尘缘,仅行于陌上,看一川风花,无爱无伤-----
 
                     
                    
                 
                    
                
 
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号