温馨提示×

CentOS SFTP如何进行数据备份

小樊
44
2025-12-27 07:54:22
栏目: 智能运维

CentOS SFTP数据备份实用方案

一 备份策略与准备

  • 明确备份范围:优先备份用户数据(如 /home/sftpuser)、关键配置(如 /etc/ssh/sshd_config)与认证日志(如 /var/log/auth.log)。
  • 准备备份目的地:本机目录(如 /backup/sftp)或远程 SFTP 服务器目录;确保磁盘空间充足与目录权限正确。
  • 工具与账号:安装 OpenSSH 服务器rsync;如使用远程 SFTP,建议创建专用的备份账号并配置 SSH 密钥登录 以提升安全性与可自动化性。

二 本机到本机的定时备份脚本

  • 安装必要软件(如未安装):sudo yum install -y openssh-server rsync
  • 创建备份脚本 /usr/local/bin/backup_sftp.sh:
#!/bin/bash
# 备份源与目标
SRC="/home/sftpuser"
DST="/backup/sftp/$(date +%F)"
LOG="/var/log/sftp_backup.log"

# 创建目标目录
mkdir -p "$DST"

# 执行增量同步(保留属性,删除目标端多余文件)
rsync -a --delete "$SRC" "$DST"

# 同时备份配置与日志
cp -p /etc/ssh/sshd_config "$DST/"
cp -p /var/log/auth.log "$DST/"

# 记录日志
echo "Backup completed at $(date)" >> "$LOG"
  • 赋权并测试:chmod +x /usr/local/bin/backup_sftp.sh;手动执行测试。
  • 加入定时任务(每天 02:00 执行):
0 2 * * * /usr/local/bin/backup_sftp.sh

说明:rsync 的 -a 归档模式可保留权限、时间戳等,–delete 让目标与源保持一致,适合做镜像备份。

三 本机到远程 SFTP 的备份脚本

  • 在备份服务器准备 SFTP 账号与目录,建议使用 ChrootDirectory 限制访问范围,并启用 密钥认证
  • 客户端备份脚本 /usr/local/bin/backup_to_sftp.sh:
#!/bin/bash
# 本地待备份目录
LOCAL_DIR="/home/sftpuser"

# 远程信息
REMOTE_USER="backupuser"
REMOTE_HOST="192.0.2.10"
REMOTE_DIR="/backup/incoming"

# 生成带时间戳的归档并上传
tar czf - -C "$LOCAL_DIR" . | sftp "$REMOTE_USER@$REMOTE_HOST:$REMOTE_DIR"
  • 赋权并测试:chmod +x /usr/local/bin/backup_to_sftp.sh;手动执行测试。
  • 加入定时任务(每天 02:00 执行):
0 2 * * * /usr/local/bin/backup_to_sftp.sh

说明:通过 tar | sftp 流式上传,无需在本地落盘大文件;如需更稳健可改为先本地打包再 scp 或使用 rsync over SSH

四 恢复与验证

  • 从本机备份恢复:
rsync -a --delete /backup/sftp/2025-08-01/ /home/sftpuser/
  • 从远程 SFTP 恢复:
sftp backupuser@192.0.2.10 <<'EOF'
cd /backup/incoming
get -r . /tmp/restore/
bye
EOF
# 或先下载再解包
# tar xzf /tmp/restore/backup.tar.gz -C /home/sftpuser
  • 验证要点:检查关键目录文件是否存在、权限是否正确(如属主 sftpuser:sftpuser、目录 755、文件 644)、抽查大文件与最近修改时间;定期查看 /var/log/sftp_backup.log 确认任务执行状态。

五 安全与运维建议

  • 身份与访问控制:优先使用 SSH 密钥,禁用密码登录;为备份账号设置最小权限,必要时用 ChrootDirectory 限制到指定目录。
  • 加固与最小化:在 /etc/ssh/sshd_config 中对备份账号设置 ForceCommand internal-sftp、禁用 AllowTcpForwardingX11Forwarding,并重启 sshd 生效。
  • 备份策略:保留多份历史(如按日备份并定期清理旧备份)、将备份存放在不同物理位置或云端、对关键备份做离线或异地副本;定期演练恢复流程。

0