温馨提示×

linux sftp如何备份

小樊
43
2026-09-26 05:34:14
栏目: 智能运维

在 Linux 下使用 SFTP 进行备份,常见做法是从本地备份到远程服务器,或从远程服务器拉取到本地。下面按场景给你讲清楚。


一、使用 sftp 命令手动备份

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

sftp user@remote_host

连接后:

put /local/path/backup.tar.gz /remote/backup/

✅ 适合偶尔手动备份


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

sftp user@remote_host
get /remote/path/backup.tar.gz /local/backup/

二、使用 sftp 批量自动备份(脚本)

示例:本地文件上传到远程

#!/bin/bash

HOST="remote_host"
USER="backup"
LOCAL="/data/backup.tar.gz"
REMOTE="/backup/"

sftp $USER@$HOST <<EOF
put $LOCAL $REMOTE
bye
EOF

⚠️ 需要配置 SSH 密钥登录,否则会卡在密码输入。


三、配合 SSH Key(推荐)

生成密钥

ssh-keygen -t rsa

拷贝公钥

ssh-copy-id user@remote_host

之后 sftp 就不需要密码了,适合定时任务。


四、定时自动备份(crontab)

crontab -e

每天凌晨 2 点备份:

0 2 * * * /scripts/sftp_backup.sh

五、更推荐的替代方案(比 sftp 更好)

✅ rsync over SSH(最常用)

rsync -avz /data/ user@remote:/backup/

优点:

  • 增量备份
  • 速度快
  • 支持断点续传

✅ scp(简单文件拷贝)

scp backup.tar.gz user@remote:/backup/

六、常见备份策略建议

  • 数据库:先 mysqldump / pg_dump 再传
  • 压缩:tar -czf backup.tar.gz /data
  • 保留多份:按日期命名
backup-$(date +%F).tar.gz

七、你适合哪种?

场景 推荐方式
手动偶尔备份 sftp
自动定时 sftp + 脚本 + cron
大量/频繁 rsync
单文件 scp

如果你愿意,可以告诉我:

  • 是 本地→服务器 还是 服务器→本地
  • 是否用 cron
  • 备份的是 文件 / 数据库

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

0 踩