Linux SFTP如何备份与恢复
导读:Linux SFTP备份与恢复实操指南 一 核心思路与准备 明确目标:备份的是SFTP用户数据目录(如:/home/ 或 Chroot 根目录)与SFTP服务配置(如:/etc/ssh/sshd_config),恢复时按数据→配置→权限的...
Linux SFTP备份与恢复实操指南
一 核心思路与准备
- 明确目标:备份的是SFTP用户数据目录(如:/home/ 或 Chroot 根目录)与SFTP服务配置(如:/etc/ssh/sshd_config),恢复时按数据→配置→权限的顺序进行。
- 准备环境:确保两端安装 SSH 客户端/服务端(如:openssh-clients/openssh-server),并优先使用SSH密钥认证以提升自动化与安全性。
- 加固与连通性:如使用ChrootDirectory %h,需保证该目录属root且权限正确;同时验证防火墙/SELinux与端口22/TCP可达。
- 备份策略:结合完全/增量/差异/镜像等策略,选择如rsync、restic等工具与 SFTP 配合,兼顾效率与可恢复性。
二 备份与恢复步骤
-
场景A 服务器到服务器(推/拉)
- 推(本地→远程SFTP):
- 交互式:sftp user@host → cd 到远程目录 → put -r 本地目录
- 自动化(密钥登录):
- sftp user@host <
<
EOF
mkdir -p /remote/backup/$(date +%F)
put -r /local/backup /remote/backup/$(date +%F)
bye
EOF
- sftp user@host <
<
EOF
- 拉(远程SFTP→本地):
- 交互式:sftp user@host → get -r 远程目录 本地目录
- 自动化:
- sftp user@host <
<
EOF
get -r /remote/backup/2025-11-19 /local/restore/2025-11-19
bye
EOF
- sftp user@host <
<
EOF
- 说明:SFTP 的put/get -r支持递归传输目录;密钥登录可配合 cron 定时执行。
- 推(本地→远程SFTP):
-
场景B 整台SFTP服务器迁移(含用户与配置)
- 备份:
- 数据:tar -czvf /backup/home.tar.gz /home
- 配置:cp /etc/ssh/sshd_config /backup/sshd_config.backup
- 恢复:
- 数据:tar -xzvf /backup/home.tar.gz -C /
- 配置:cp /backup/sshd_config.backup /etc/ssh/sshd_config
- 权限:确保各用户家目录属主正确(Chroot 场景家目录属主应为root)
- 生效:systemctl restart sshd
- 验证:用 sftp 登录并检查目录与权限。
- 备份:
-
场景C 使用 rsync 做高效增量备份(推荐)
- 备份脚本示例:
- #!/bin/bash
SOURCE_DIR=“/data/sftp”
BACKUP_DIR=“/backup/sftp”
mkdir -p “$BACKUP_DIR”
rsync -a --delete “$SOURCE_DIR/” “$BACKUP_DIR/”
echo “$(date): rsync backup done.” > > “$BACKUP_DIR/backup.log”
- #!/bin/bash
- 定时:crontab -e → 0 2 * * * /path/backup_sftp.sh
- 说明:rsync -a保留权限/属主/时间戳,–delete保持镜像一致,适合长期增量备份。
- 备份脚本示例:
三 自动化与调度
- 密钥登录:ssh-keygen -t rsa -b 4096;ssh-copy-id user@host(免密便于脚本与 cron)。
- 简单自动化:用 here-document 将多条 sftp 命令写入脚本,配合日志输出与错误检查。
- 定时任务:crontab -e 配置频率(如每天2:00),并将标准输出/错误重定向到日志文件以便审计。
四 验证与故障排查
- 连通与端口:ping 与 telnet host 22;firewall-cmd --list-ports 确认 22/TCP 放行。
- 服务与配置:systemctl status sshd;核对 /etc/ssh/sshd_config 中 Subsystem sftp 与 Match/Chroot 段;变更后重启 sshd。
- 日志定位:tail -f /var/log/secure(或 /var/log/auth.log)查看认证与 SFTP 会话错误。
- 权限要点:Chroot 目录及其上级目录属主应为root,目标写入目录对 SFTP 用户可写;必要时检查 SELinux/AppArmor。
五 误删恢复与最佳实践
- 有备份时:按时间点从最近备份恢复(如按日期目录或增量链),先停写入,恢复后再校验。
- 无备份时:立即卸载相关分区并停止写入,尝试文件系统级工具:
- extundelete(ext3/ext4):extundelete /dev/sdXY --restore-file 路径
- testdisk(多文件系统):testdisk → 选择磁盘/分区 → 按向导恢复
- 最佳实践:
- 采用3-2-1策略(3份副本、2种介质、1份异地/离线),定期做恢复演练与完整性校验。
- 对敏感备份启用加密与最小权限;Chroot 环境下严格控制目录属主与权限。
- 优先使用rsync/restic等支持增量与校验的工具,减少传输量与恢复时间。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Linux SFTP如何备份与恢复
本文地址: https://pptw.com/jishu/751444.html
