背景
使用开源 Minio 搭建了自己的 s3 存储,担心同步的时候导致云端数据损坏,所以利用 linux 的脚本和定时任务进行 minio 数据文件的自动备份,每天 23:55 定时执行。
至于为什么不十多块钱买个 s3 服务,没别的原因,程序员,爱折腾。
1、创建用于自动备份的 bash 脚本文件
# 切换到如下目录(可以是其他任意目录)
cd /home/miniobackup
[root@hs-3218 home]# mkdir miniobackup
# 创建任意名称的bash脚本文件并开始编辑它
vim minio_backup.sh
2、将如下内容复制到 minio_backup.sh 文件中
#!/bin/bash
# 定义备份目录
BACKUP_DIR=/home/miniobackup
# 定义备份文件名
BACKUP_FILE=minio_backup_$(date +%Y%m%d%H%M%S).tar.gz
# 执行备份命令,将数据备份至$BACKUP_DIR/tmp表示的临时目录下
cp -r /home/minio/data/siyuandata $BACKUP_DIR/tmp
# 压缩备份文件
cd $BACKUP_DIR/tmp
tar -czvf $BACKUP_DIR/$BACKUP_FILE *
# 删除临时目录
rm -rf $BACKUP_DIR/tmp
# 删除7天前的备份文件,避免占用过多磁盘资源
find $BACKUP_DIR -type f -name "minio_backup_*" -mtime +7 -exec rm {} \;
手动执行脚本
sh minio_backup.sh
3、使用 crontab 命令设置周期性执行脚本的任务
# 使用crontab -e命令编辑当前用户的计时器设置
crontab -e
# 若添加以下内容,表示每天23:55执行位于/home/miniobackup目录下的minio_backup.sh脚本
55 23 * * * /bin/bash /home/miniobackup/minio_backup.sh
# 若添加以下内容,表示每隔2分钟执行minio_backup.sh脚本
*/2 * * * * /bin/bash /home/miniobackup/minio_backup.sh
4、使用自动备份的文件恢复数据
# 进入备份目录,示例:
cd /home/miniobackup
# 将备份文件xxx.tar.gz解压至指定目录,示例:
tar -xzvf minio_backup_20230826104116.tar.gz
# 从备份文件恢复数据到Minio服务器的数据目录,示例:
cp -r /home/miniobackup/repo /home/minio/data/siyuandata/repo
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于