在 Linux 上“备份 SFTP 文件”通常有两种理解,下面分别说明,并给出常用、可落地的做法。
lftp(推荐,稳定)lftp sftp://user:password@remote_host -e "mirror -e /remote/path /local/backup/path; bye"
说明:
mirror:同步目录-e:删除本地多余文件(保持完全一致)-e 更安全(只增不删)rsync + ssh如果远程支持 SSH:
rsync -avz -e ssh user@remote_host:/remote/path /local/backup/path
优点:增量备份,速度快
sftp 命令脚本sftp user@remote_host <<EOF
cd /remote/path
lcd /local/backup/path
mget *
bye
EOF
lftp sftp://user:password@remote_host -e "mirror -R /local/path /remote/backup; bye"
-R:反向同步(本地 → 远程)rsync -avz /local/path user@remote_host:/remote/backup
crontab -e
添加:
0 2 * * * lftp sftp://user:pass@host -e "mirror -e /remote/path /backup/path; bye"
→ 每天凌晨 2 点备份
ssh-keygen
ssh-copy-id user@remote_host
之后可省略密码
rsnapshotrestic(支持 SFTP 后端,加密备份)restic -r sftp:user@host:/backup init
restic -r sftp:user@host:/backup backup /local/path
如果你能说明:
我可以给你直接可用的完整脚本。