在 Linux 下使用 SFTP 进行备份,常见做法有几种,下面从最简单到自动化给你讲清楚。
sftp user@remote_host
put /local/path/file.tar.gz /remote/backup/
get /remote/path/file.tar.gz /local/backup/
⚠️ SFTP 原生不支持递归上传目录,需要打包。
tar -czf backup_$(date +%F).tar.gz /data /etc
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
适合:
crontab -e
每天 2 点备份:
0 2 * * * /path/backup.sh
如果你告诉我:
我可以帮你写一套完整可直接用的备份方案。