首页主机资讯Debian SFTP如何备份与恢复数据

Debian SFTP如何备份与恢复数据

时间2025-11-14 15:28:04发布访客分类主机资讯浏览1318
导读:Debian SFTP备份与恢复实操指南 一 环境准备与连接 安装客户端与服务器 本地执行:sudo apt-get update && sudo apt-get install -y openssh-client 远端...

Debian SFTP备份与恢复实操指南

一 环境准备与连接

  • 安装客户端与服务器
    • 本地执行:sudo apt-get update & & sudo apt-get install -y openssh-client
    • 远端Debian执行:sudo apt-get update & & sudo apt-get install -y openssh-server
  • 启动并检查SSH服务
    • sudo systemctl start ssh;sudo systemctl status ssh
    • 防火墙放行:sudo ufw allow 22/tcp;sudo ufw reload
  • 使用密钥认证(推荐)
    • 本地生成:ssh-keygen -t rsa -b 4096
    • 分发公钥:ssh-copy-id user@remote_host
  • 连接测试
    • sftp user@remote_host(默认端口22

二 数据备份方案

  • 方案A 手工交互式SFTP
    • 上传:put -r 本地目录 远程目录
    • 下载:get -r 远程目录 本地目录
    • 常用:ls、cd、rm、mkdir、exit
  • 方案B 自动化脚本(密钥认证)
    • 备份脚本示例(本地→远端)
      #!/usr/bin/env bash
      set -Eeuo pipefail
      LOCAL_DIR="/data"
      REMOTE_USER="sftpuser"
      REMOTE_HOST="192.0.2.10"
      REMOTE_DIR="/backup"
      TS=$(date +%F_%H%M%S)
      ARCHIVE="/tmp/backup_${
      TS}
          .tgz"
      
      mkdir -p "$LOCAL_DIR"
      tar czf "$ARCHIVE" -C "$LOCAL_DIR" .
      sftp "$REMOTE_USER@$REMOTE_HOST" <
          <
          EOF
      mkdir -p "$REMOTE_DIR"
      put "$ARCHIVE" "$REMOTE_DIR/"
      bye
      EOF
      echo "$(date): Uploaded $ARCHIVE ->
           $REMOTE_HOST:$REMOTE_DIR/"
      rm -f "$ARCHIVE"
      
    • 定时任务(每天02:00
      • crontab -e 添加:0 2 * * * /path/to/backup.sh
  • 方案C 远端→本地恢复脚本
    #!/usr/bin/env bash
    set -Eeuo pipefail
    REMOTE_USER="sftpuser"
    REMOTE_HOST="192.0.2.10"
    REMOTE_FILE="/backup/backup_2025-09-01_020000.tgz"
    LOCAL_RESTORE="/restore/$(date +%F_%H%M%S)"
    
    mkdir -p "$LOCAL_RESTORE"
    sftp "$REMOTE_USER@$REMOTE_HOST" <
        <
        EOF
    get "$REMOTE_FILE" -o "$LOCAL_RESTORE/backup.tgz"
    bye
    EOF
    tar xzf "$LOCAL_RESTORE/backup.tgz" -C "$LOCAL_RESTORE"
    echo "$(date): Restored $REMOTE_FILE ->
         $LOCAL_RESTORE"
    
  • 方案D 使用SCP替代(更简洁)
    • 上传:scp -r /path/to/dir user@host:/remote/dir
    • 下载:scp -r user@host:/remote/file /local/dir
  • 方案E 使用rsync over SSH(增量、断点续传)
    • 本地→远端:rsync -avz -e ssh /data/ sftpuser@host:/backup/data/
    • 远端→本地:rsync -avz -e ssh sftpuser@host:/backup/data/ /restore/data/

三 备份策略与保留

  • 命名规范:包含日期时间,如 backup_2025-09-01_020000.tgz,便于排序与追溯
  • 保留策略:上传成功后清理远端旧备份(示例保留7天)
    ssh sftpuser@host "find /backup -name 'backup_*.tgz' -mtime +7 -delete"
    
  • 完整性校验:在脚本中加入校验(示例)
    sha256sum "$ARCHIVE" >
        >
         /var/log/backup.sha256
    
  • 日志与告警:记录关键步骤与结果,必要时接入监控/告警

四 恢复流程与验证

  • 基本步骤
    • 列出远端备份:sftp user@host;ls /backup
    • 选择备份文件并下载(见方案C)
    • 解压到目标目录并校验文件权限与数量
  • 验证要点
    • 校验和对比(与备份时生成的sha256一致)
    • 抽样打开关键文件/数据库一致性检查
    • 对应用自检(服务能否启动、页面能否访问、关键流程是否通过)
  • 回滚预案
    • 保留最近N份;异常时优先回滚至上一个已知良好版本

五 备份SFTP服务配置与用户数据

  • 配置与密钥备份清单
    • SSH服务配置:/etc/ssh/sshd_config
    • 主机密钥:/etc/ssh/ssh_host_*(如 rsa_keyecdsa_keyed25519_key
    • 用户与认证:/etc/passwd、/etc/shadow(按需备份)
    • SFTP用户目录:如 /home/sftpuser 或 Chroot 根目录
  • 打包备份示例
    sudo tar czvf /backup/sftp_config_$(date +%F).tgz \
      /etc/ssh/sshd_config \
      /etc/ssh/ssh_host_* \
      /home/sftpuser
    
  • 恢复示例
    sudo tar xzvf /backup/sftp_config_2025-09-01.tgz -C /
    sudo systemctl restart ssh
    
  • 安全建议
    • 备份文件同样需要保护(最小权限、异地/离线存放)
    • 变更前先在测试环境验证恢复流程

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Debian SFTP如何备份与恢复数据
本文地址: https://pptw.com/jishu/748089.html
cpustat在自动化运维中的使用 Linux中cpustat与top命令对比

游客 回复需填写必要信息