centos

CentOS SFTP如何进行数据备份

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

CentOS SFTP数据备份实用方案

一 备份策略与准备

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

#!/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"
0 2 * * * /usr/local/bin/backup_sftp.sh

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

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

#!/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"
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 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

五 安全与运维建议

0
看了该问题的人还看了