首页主机资讯Ubuntu SFTP备份数据的方法

Ubuntu SFTP备份数据的方法

时间2025-10-17 17:57:03发布访客分类主机资讯浏览698
导读:Ubuntu使用SFTP备份数据的方法 一、准备工作:安装与配置SFTP服务器 SFTP基于SSH协议,默认集成在Ubuntu的openssh-server中,无需额外安装SFTP组件,只需配置即可使用。 安装OpenSSH服务器 更新软...

Ubuntu使用SFTP备份数据的方法

一、准备工作:安装与配置SFTP服务器

SFTP基于SSH协议,默认集成在Ubuntu的openssh-server中,无需额外安装SFTP组件,只需配置即可使用。

  1. 安装OpenSSH服务器
    更新软件包列表并安装:
    sudo apt update &
        &
         sudo apt install openssh-server
    
  2. 配置SFTP子系统
    编辑SSH配置文件(/etc/ssh/sshd_config),确保以下关键配置未被注释:
    Subsystem sftp /usr/lib/openssh/sftp-server
    
    若需限制用户仅能通过SFTP访问(增强安全性),可添加以下配置(需提前创建sftpusers组并添加用户):
    Match Group sftpusers
        ChrootDirectory %h
        ForceCommand internal-sftp
        AllowTcpForwarding no
        X11Forwarding no
    
    保存文件后,重启SSH服务使配置生效:
    sudo systemctl restart sshd
    
  3. 创建备份目录
    在服务器上创建专用备份目录,并设置合理权限(避免其他用户修改):
    sudo mkdir -p /backup/data  # 创建备份目录
    sudo chown your_username:your_group /backup/data  # 修改所有者(替换为你的用户名和组)
    sudo chmod 700 /backup/data  # 仅所有者可读写执行
    

二、手动执行SFTP备份(命令行方式)

通过命令行工具sftp可直接传输文件,适用于临时或手动备份场景。

  1. 连接SFTP服务器
    在本地终端输入以下命令,替换username(服务器用户名)、remote_host(服务器IP/域名):
    sftp username@remote_host
    
    输入密码后进入SFTP会话(提示符变为sftp> )。
  2. 上传文件/目录
    • 单个文件:使用put命令,指定本地路径和远程目标路径(如将本地~/documents/report.pdf备份到服务器/backup/data目录):
      put ~/documents/report.pdf /backup/data/
      
    • 整个目录:添加-r参数递归上传(如备份本地~/photos目录):
      put -r ~/photos /backup/data/
      
  3. 退出会话
    输入exitbye结束SFTP连接。

三、自动化备份(脚本+定时任务)

通过脚本和cron定时任务可实现每日自动备份,减少手动操作。

  1. 编写备份脚本
    创建脚本文件(如/home/your_username/backup_script.sh),内容如下(替换为实际路径和用户名):
    #!/bin/bash
    # 定义变量
    LOCAL_DIR="/home/your_username/documents"  # 本地待备份目录
    REMOTE_USER="your_username"               # 服务器用户名
    REMOTE_HOST="remote_host"                 # 服务器IP/域名
    REMOTE_DIR="/backup/data"                 # 服务器备份目录
    TIMESTAMP=$(date +%Y%m%d_%H%M%S)          # 时间戳(用于区分备份版本)
    
    # 使用SFTP上传目录(递归)
    sftp $REMOTE_USER@$REMOTE_HOST <
        <
        EOF
    put -r $LOCAL_DIR $REMOTE_DIR/$TIMESTAMP
    bye
    EOF
    
    保存后赋予执行权限:
    chmod +x /home/your_username/backup_script.sh
    
  2. 配置cron定时任务
    编辑当前用户的cron表(crontab -e),添加以下行(如每天凌晨2点执行备份):
    0 2 * * * /home/your_username/backup_script.sh >
        >
         /home/your_username/backup.log 2>
        &
        1
    
    说明:> > /home/your_username/backup.log 2> & 1会将脚本输出(包括错误信息)追加到日志文件,便于后续排查问题。

四、注意事项

  • 安全性:优先使用SSH密钥认证(替代密码),避免密码泄露;敏感备份数据建议用gpg等工具加密。
  • 权限管理:确保备份目录权限正确(如700),防止未授权访问;若使用chroot限制用户,需确保目录结构符合要求(如ChrootDirectory的父目录需属root)。
  • 备份验证:定期检查备份文件的完整性和可用性(如尝试恢复部分文件),避免因传输错误导致备份失效。
  • 网络稳定性:确保本地与服务器之间的网络稳定,避免备份中断;若备份数据量大,可考虑使用rsync(支持断点续传)替代put命令。

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


若转载请注明出处: Ubuntu SFTP备份数据的方法
本文地址: https://pptw.com/jishu/729196.html
Linux Kafka配置有哪些技巧 Debian上K8S部署要注意啥

游客 回复需填写必要信息