温馨提示×

如何用Linux SFTP备份数据

小樊
60
2025-09-01 03:58:23
栏目: 智能运维

使用Linux SFTP备份数据是一个相对简单的过程,以下是详细步骤:

准备工作

  1. 安装SFTP服务器

    • 如果你还没有安装SFTP服务器,可以使用以下命令在大多数Linux发行版上安装:
      sudo apt-get install openssh-server # Debian/Ubuntu sudo yum install openssh-server # CentOS/RHEL sudo dnf install openssh-server # Fedora 
  2. 配置SFTP服务器

    • 编辑SSH配置文件 /etc/ssh/sshd_config
      sudo nano /etc/ssh/sshd_config 
    • 找到并修改以下行以启用SFTP子系统:
      Subsystem sftp /usr/lib/openssh/sftp-server 
    • 确保以下行没有被注释掉(通常默认是启用的):
      PasswordAuthentication yes 
    • 保存并退出编辑器,然后重启SSH服务:
      sudo systemctl restart sshd 
  3. 创建备份目录

    • 在SFTP服务器上创建一个用于存放备份的目录:
      sudo mkdir -p /backup/data sudo chown nobody:nogroup /backup/data 

使用SFTP进行备份

  1. 连接到SFTP服务器

    • 使用SFTP客户端连接到服务器。你可以使用命令行工具 sftp 或图形化工具如FileZilla。
    • 命令行连接示例:
      sftp username@hostname 
    • 输入密码后,你将进入SFTP会话。
  2. 上传文件或目录

    • 使用 put 命令上传单个文件:
      put /path/to/local/file /backup/data/ 
    • 使用 put -r 命令递归上传整个目录:
      put -r /path/to/local/directory /backup/data/ 
  3. 下载文件或目录(可选):

    • 如果你需要从服务器下载文件或目录,可以使用 get 命令:
      get /backup/data/file /path/to/local/ get -r /backup/data/directory /path/to/local/ 
  4. 退出SFTP会话

    • 完成操作后,输入 exit 退出SFTP会话。

自动化备份脚本

为了简化备份过程,你可以编写一个自动化脚本。以下是一个简单的示例脚本:

#!/bin/bash # 配置变量 LOCAL_DIR="/path/to/local/directory" REMOTE_DIR="/backup/data" HOSTNAME="hostname" USERNAME="username" # 创建备份目录(如果不存在) ssh ${USERNAME}@${HOSTNAME} "mkdir -p ${REMOTE_DIR}" # 上传本地目录到远程服务器 rsync -avz --delete ${LOCAL_DIR}/ ${USERNAME}@${HOSTNAME}:${REMOTE_DIR} echo "Backup completed successfully!" 

将上述脚本保存为 backup.sh,然后赋予执行权限并运行:

chmod +x backup.sh ./backup.sh 

这个脚本使用 rsync 工具来同步本地和远程目录,并删除远程目录中不再存在的文件。

通过以上步骤,你可以轻松地使用Linux SFTP进行数据备份。

0