温馨提示×

linux sftp怎么备份

小樊
40
2026-10-29 08:19:30
栏目: 智能运维

在 Linux 下使用 SFTP 进行备份,常见做法有几种,下面从最简单到自动化给你讲清楚。


一、手动 SFTP 备份(最基础)

1. 连接 SFTP

sftp user@remote_host

2. 上传文件/目录到远程

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

3. 下载远程文件到本地(反向备份)

get /remote/path/file.tar.gz /local/backup/

⚠️ SFTP 原生不支持递归上传目录,需要打包。


二、打包后再 SFTP 备份(推荐)

本地打包

tar -czf backup_$(date +%F).tar.gz /data /etc

使用 SFTP 上传

sftp user@remote_host <<EOF
put backup_*.tar.gz /backup/
bye
EOF

三、用 sftp 命令脚本自动备份

示例脚本 backup.sh

#!/bin/bash

DATE=$(date +%F)
BACKUP_DIR=/backup
FILE=$BACKUP_DIR/backup_$DATE.tar.gz

tar -czf $FILE /data /etc

sftp user@remote_host <<EOF
put $FILE /remote/backup/
bye
EOF
chmod +x backup.sh

四、更推荐:用 rsync + SSH(比 SFTP 好用)

如果你只是想备份文件,rsync 更合适:

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

优点:

  • 支持增量备份
  • 自动同步目录
  • 速度快

五、使用 lftp(支持 SFTP 脚本)

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

适合:

  • 目录同步
  • 自动化脚本

六、定时自动备份(cron)

crontab -e

每天 2 点备份:

0 2 * * * /path/backup.sh

七、安全建议

  • 使用 SSH 密钥登录(避免密码)
  • 远程目录权限最小化
  • 保留历史备份(如 7 天)

如果你告诉我:

  • 是本地 → 远程 还是 远程 → 本地
  • 是否要自动定时
  • 数据量大小

我可以帮你写一套完整可直接用的备份方案。

0 踩