一般都是写好计划任务自动备份的,这是个手动查询本地备份和下载备份的脚本
# 脚本使用:
例如:
本地备份目录为 /backup/project
按月备份目录为 /backup/project/202202
备份文件名称格式为 日期-文件名.tar.gz
完整文件路径为 /backup/project/202202/日期-文件名.tar.gz
脚本内容
#!/bin/bash
# 基础变量
cate="/backup/project" #本地备份目录
down_sts="curl --connect-timeout 2 -I -m 5 -o /dev/null -s -w %{http_code}" #url状态码查询
down_date=`date +%Y%m%d` #匹配可下载的文件名称(时间格式化)
same_month=`date +%Y%m` #本地备份按月目录
dir="$cate/$same_month" #本地备份完整目录
# 颜色输出
log_success(){
echo -e "\E[1;32m$1\E[0m"
}
log_error(){
echo -e "\E[31m$1\E[0m"
}
# 本地文件查询
load_backfile(){
arbit="$1"
if [ "$arbit" == "" ];then month="$same_month";else month="$arbit";fi
ym=`echo -e "\E[1;34m$month月份\E[0m"`
echo -e "\E[1;35m********** 本地[\E[0m$ym\E[1;35m]备份文件 **********\E[0m"
ls $cate|grep $month >/dev/null && tree -C -sh $cate/$month/|grep -v "direct" || log_error "输入目录错误不存在"
}
# 查询可下载的备份文件
backfile(){
echo -e "\E[1;35m********** 可下载备份文件(当月当天日期往前8天) **********\E[0m"
for i in `seq 8`;do
file_name="$down_date-xxx.xxxx-xxx.tar.gz"
down_url="https://xxx.xxxxxxx.xxx/xxx/xxxx/xxxx/$file_name"
code=`$down_sts $down_url`
if [ $code -eq 200 ];then log_success "$i-有效-备份日期存在: $file_name";array[$i]=$down_url;else log_error "$i-无效-备份日期不存在: $file_name";fi
down_date=`date --date="-$i day" +%Y%m%d`
done
down_date=`date +%Y%m%d`
}
# 执行
while true;do
load_backfile
backfile
info=`echo -e "\E[1;33m\n操作:\na 下载有效备份(目录为$dir)\nb 查询本地其他月份备份文件\nc 刷新\nd 退出\n请输入: \E[0m"`
while true;do
read -p "$info" key
case $key in
a)
while true;do
read -p "输入有效备份文件前面序号 (q 返回): " num
index=`echo "${array[$num]}"`
if [ "$index" != "" ];then wget -P $dir `echo "${array[$num]}"`;elif [ "$num" == "q" ];then break;else log_error "Error: 序号输入错误";fi
done
;;
b)
while true;do
read -p "输入存在的目录[例如 202112 ] (q 返回)" m
if [ "$m" == "q" ];then break;else load_backfile $m;fi
done
;;
c)
break
;;
d)
exit
;;
*)
log_error "Error: 输入序号 或者 输入d退出"
;;
esac
done
done
本文最后记录时间 2024-03-30
文章链接地址:https://wojc.cn/archives/1189.html
本站文章除注明[转载|引用|来源],均为本站原创内容,转载前请注明出处
文章链接地址:https://wojc.cn/archives/1189.html
本站文章除注明[转载|引用|来源],均为本站原创内容,转载前请注明出处