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 {}  对上一步筛选出的文件或目录,进行删除处理
欢迎大家留言,以便于后面的人更快解决问题!另外亦欢迎大家可以关注我的微信公众号,方便利用零碎时间互相交流。共勉!

posted @ 2023-08-29 16:58  灵台悠步  阅读(304)  评论(0编辑  收藏  举报