linux

如何通过SFTP备份数据

小樊
43
2025-08-16 01:38:20
栏目: 编程语言

通过SFTP备份数据的步骤如下:

  1. 准备SFTP服务器

    • 安装OpenSSH服务器(如Ubuntu用sudo apt-get install openssh-server)。
    • 创建专用备份用户并设置强密码(如sudo useradd -m backup_user)。
    • 在服务器上创建备份目录并设置权限(如/backup目录)。
  2. 配置SFTP服务(可选)

    • 编辑/etc/ssh/sshd_config,限制用户仅能访问备份目录(如ChrootDirectory /backup)。
    • 重启SSH服务(sudo systemctl restart sshd)。
  3. 本地准备

    • 安装SFTP客户端(如Linux默认已安装,Windows可用WinSCP/FileZilla)。
    • (可选)生成SSH密钥对,将公钥复制到服务器以实现免密登录(ssh-keygen + ssh-copy-id)。
  4. 执行备份

    • 手动备份:用SFTP客户端(如WinSCP)拖拽文件到服务器,或通过命令行输入put/get命令。
      • 示例(命令行):sftp user@host put /local/path /remote/path
    • 脚本自动化:编写Bash脚本,用tar打包文件后通过SFTP传输,或直接用rsync/scp命令。
      • 示例脚本(含密码):
        #!/bin/bash  
        LOCAL_DIR="/path/to/local"  
        REMOTE_USER="user"  
        REMOTE_HOST="host"  
        REMOTE_DIR="/backup"  
        sshpass -p "password" sftp $REMOTE_USER@$REMOTE_HOST <<EOF  
        mkdir -p $REMOTE_DIR  
        put -r $LOCAL_DIR $REMOTE_DIR  
        bye  
        EOF  
        
    • 定时任务:用cron设置定期执行备份脚本(如每天凌晨2点)。
  5. 安全增强

    • 优先使用SSH密钥认证,避免密码明文存储。
    • 定期检查备份日志,确保传输成功。

工具推荐

参考来源:

0
看了该问题的人还看了