CentOS7 自动打包指定目录并上传至 MinIO 服务器


一. 编写打包和上传脚本

#!/bin/bash

# 要备份的路径
directory="/home/user/mysql"

# Minio 文件服务器地址
upload_url="http://127.0.0.1:9000"

# Minio Buckets 名称
buckets_name="backup"

# 要上传到fastdfs服务器的路径参数
path="/mysql"

# 获取当前日期
current_date=$(date +"%Y-%m-%d")

# 文件上传上传Path参数
upload_path="${path}/${current_date}"


# 遍历目录下的子目录
for subdir in "$directory"/*; do
    if [[ -d "$subdir" ]]; then  # 判断是否为目录
        # 获取文件夹名称
        folder_name=$(basename "$subdir")

        # 压缩文件名
        archive_name="${folder_name}_${current_date}.tar.gz"

        # 压缩子目录
        tar -czvf "$archive_name" -C "$directory" "$folder_name"

        # 使用curl上传文件
        curl -X PUT -T "${archive_name}" "${upload_url}/${buckets_name}${upload_path}/${archive_name}"

        # 删除压缩文件
        rm "$archive_name"
    fi
done

二. 配置自动执行

# 使用 crontab 实现定时执行
crontab -e

# 0 3 * * * 每天三点执行
0 3 * * * /home/user/mysql/back.sh

评论已关闭