每天博客备份脚本,简单实用

前言

数据备份是一项至关重要的任务,它对于保障信息安全、提高数据可靠性以及应对突发事件具有重要意义。数据备份是保障信息安全、提高数据可靠性以及应对突发事件的重要手段。企业和个人都应充分认识到数据备份的重要性,制定合理的备份策略,确保数据安全无忧。

我们个人作为一个网站的管理者,不仅要对网站的访问者负责,更要对自己负责,不要因数据丢失无法找回而造成多年心血付诸东流!!!


数据无价,谨慎操作!
数据无价,谨慎操作!
数据无价,谨慎操作!


脚本源码展示

下面是一段简单的备份同步目录的脚本,大家可以根据自己的需要进行修改!

#!/bin/bash

# 定义备份目录
BACKUP_DIR="/root/backup/wordpress"  # 修改为您的备份目录

# 定义源目录
SOURCE_DIR="/root/docker/wordpress"  # 修改为您的源目录

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

# 创建备份目录的日期子目录
BACKUP_SUBDIR="$BACKUP_DIR/$DATE"

# 创建备份目录
mkdir -p "$BACKUP_SUBDIR"

# 使用rsync进行同步
# -a : 归档模式,保持符号链接、权限、时间戳、组信息和所有权
# -H : 保持硬链接
# -v : 详细输出
# --delete : 删除在源目录中不存在但在目标目录中存在的文件
# --exclude=.snapshot : 排除.snapshot目录,如果你有ZFS快照或其他类似的目录,可以修改这个排除规则
rsync -aH --delete --exclude=.snapshot "$SOURCE_DIR/" "$BACKUP_SUBDIR"

# 创建tar包
TAR_FILE="$BACKUP_DIR/blogbak--$DATE.tar.gz"
tar -czf "$TAR_FILE" -C "$BACKUP_SUBDIR" .

# 同步至远程存储服务器
SSH_ID="~/.ssh/hhbak" # 需要预先做scp免密,利用ssh-copy-id命令
REMOTE_SERVER="xx.xx.xx.xx" # 你的IP或域名
REMOTE_BACKUP_DIR="/opt/backup/blog" # 远程存储机的备份目录
scp -i "$SSH_ID" "$TAR_FILE" "$REMOTE_SERVER":"$REMOTE_BACKUP_DIR"

# 删除旧的备份(保留最新的3个备份)
cd "$BACKUP_DIR"
ls -t | tail -n +4 | xargs rm -rf --

# 删除rsync同步的目录,因为已经打成了tar包
rm -rf "$BACKUP_SUBDIR"

补充说明

远程同步部分根据自己需要编辑,可以对接webdav,minio等存储方案。需要预先做免密操作。删除远程同步不影响备份流程,但数据只会白留在本地。远程同步会保留所有备份,不会只保留三份。

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容