温馨提示×

ubuntu sftp怎样备份数据

小樊
38
2026-10-08 05:31:27
栏目: 智能运维

在 Ubuntu 上,通过 SFTP(SSH File Transfer Protocol) 备份数据,常见做法是从本地备份到远程服务器,或从远程服务器拉取到本地。下面按场景给你几种实用方法。


一、使用 sftp 命令手动备份

1️⃣ 本地 → 远程服务器(上传备份)

sftp user@remote_ip

进入后:

put -r /local/path /remote/backup/path
  • -r:递归上传目录
  • 适合小数据、临时备份

退出:

bye

2️⃣ 远程 → 本地(下载备份)

sftp user@remote_ip
get -r /remote/path /local/backup/path

二、使用 rsync + SFTP(推荐 ✅)

虽然 rsync 默认走 SSH,但本质和 SFTP 一样安全,且支持增量备份。

本地 → 远程

rsync -avz -e ssh /local/data/ user@remote_ip:/backup/data/

远程 → 本地

rsync -avz -e ssh user@remote_ip:/remote/data/ /local/backup/

参数说明:

  • -a:归档模式(保留权限、时间)
  • -v:显示过程
  • -z:压缩传输
  • 支持断点续传、增量同步

✅ 最推荐用于定期备份


三、使用 lftp(脚本化 SFTP 备份)

适合写脚本、定时任务。

安装

sudo apt install lftp

示例:本地 → 远程

lftp sftp://user:password@remote_ip <<EOF
mirror -R /local/data /remote/backup
bye
EOF

示例:远程 → 本地

lftp sftp://user:password@remote_ip <<EOF
mirror /remote/data /local/backup
bye
EOF

⚠️ 注意:明文密码不安全,建议用 ~/.ssh/id_rsa 免密登录。


四、使用 SSH 密钥(强烈推荐)

生成密钥

ssh-keygen

拷贝公钥

ssh-copy-id user@remote_ip

之后 SFTP / rsync 都不需要密码,方便自动化。


五、定时自动备份(cron)

例如每天凌晨 2 点备份:

crontab -e

添加:

0 2 * * * rsync -az -e ssh /data/ user@remote_ip:/backup/ >> /var/log/backup.log

六、常见备份目录建议

  • /home
  • /var/www
  • /etc
  • 数据库需先 mysqldump 再备份

MySQL 示例

mysqldump -u root -p dbname > db.sql
rsync -az db.sql user@remote:/backup/

总结推荐

场景 推荐方式
临时手动 sftp
定期/大量 rsync over SSH
脚本自动化 lftp
安全 SSH 密钥

如果你告诉我:

  • 是 本地 → 服务器 还是 服务器 → 本地
  • 数据量大小
  • 是否要定时

我可以帮你写完整备份脚本。

0 踩