讲师中心 微信公众号
AI工具推荐 视频效率加速

Linux 远程备份与安全传输方案

千明酱_4080

千明酱_4080

发布时间:2026-02-16 14:54:12

|

1118人浏览过

|

来源于php中文网

原创

rsync必须搭配SSH实现安全增量备份:默认走22端口,改端口需用-e指定;禁用交互式登录须限制authorized_keys中command;增量依赖硬链接快照(cp -al)与--link-dest,非rsync自身功能。

linux 远程备份与安全传输方案

rsync + SSH 是当前最稳妥的远程备份组合

不用 rsync 的纯 scp 备份,容易丢增量、难校验、无法断点续传;用 rsync 但裸跑(没走 SSH),又暴露数据和认证凭据。真正落地时,rsync 必须搭配 ssh 作为传输层,且默认就支持——它不依赖守护进程,也不开额外端口。

常见错误现象:rsync: failed to connect to host: Connection refused,其实是误用了 rsync:// 协议而非 SSH 模式;正确写法必须带 user@host: 或显式指定 -e "ssh -p 2222"。

  • 默认走 SSH 的 22 端口,改端口必须用 -e "ssh -p 2345",不能只写 --port=2345(那是 rsync daemon 模式)
  • 排除临时文件用 --exclude='.tmp',注意路径是相对于同步起点的,不是绝对路径
  • 加 -a --delete 能镜像目录,但首次运行前建议先加 --dry-run 看实际要删什么
  • 如果目标机 SSH 配了 ForceCommand(如某些跳板机),rsync 会失败,得换用 rdiff-backup 或手动打包再传

SSH 密钥免密登录必须限制命令权限

直接 ssh-copy-id 推公钥上去,看似省事,实则等于给备份账号开了全系统 shell 权限——只要私钥泄露,对方就能执行任意命令。生产环境必须锁定 SSH 命令范围。

使用场景:只允许该密钥调用 rsync,禁止交互式登录或执行其他命令。

  • 在目标机的 ~/.ssh/authorized_keys 里,把公钥行开头加上:command="rsync --server --sender -vlogDtpre.iLs . /backup/path",no-pty,no-agent-forwarding,no-X11-forwarding
  • --server --sender 是 rsync 内部通信协议必需参数,漏掉会报 protocol version mismatch
  • 别用 restrict 代替具体禁用项,OpenSSH 7.0+ 才支持,旧系统可能忽略
  • 测试是否生效:本地执行 ssh -i key user@host,应该直接退出并报错,而不是进 shell

备份脚本里必须检查 rsync 退出码,不能只看 stdout

rsync 成功完成但部分文件跳过(比如权限不足、文件被占用),退出码仍是 0;只有严重错误(连接中断、目标不可写)才返回非 0。靠 echo "done" 判断成功,等于埋雷。

Obsidian (Linux)
Obsidian (Linux)

操作 Obsidian 库(纯 Markdown 笔记),并通过 notesmd-cli 实现自动化。

下载

性能影响:加 --itemize-changes 会多输出一行每文件变更摘要,对大目录略拖慢,但比事后人工排查强得多。

  • 关键判断逻辑应为:if [ $? -gt 24 ]; then echo "rsync warning or error"; exit 1; fi —— rsync 规定 0–23 是正常状态码,24+ 才表示问题
  • 加 --out-format='%n %t %M %l %o' 可记录文件名、修改时间、权限、大小、操作类型,便于审计
  • 避免用 set -e 简单兜底,因为 rsync 本身常返回 23(部分文件未更新),不该触发脚本中止

增量备份需配合硬链接快照,否则空间失控

每天全量 rsync 到同一目录,等于每天存一份完整副本,磁盘几天就满。真正的“增量”不是靠 rsync 自身实现的,而是用 cp -al 创建硬链接快照,再让 rsync 更新最新一份。

兼容性注意:硬链接只在同文件系统内有效,跨分区或挂载 NFS 不适用;ext4/xfs 都支持,但 btrfs/zfs 应优先用原生命令(btrfs subvolume snapshot)。

  • 典型结构:/backup/2024-06-01(当前)、/backup/2024-05-31(上一版),新备份前先 cp -al 2024-06-01 2024-06-02
  • rsync 命令末尾加 --link-dest=/backup/2024-06-01,相同文件自动硬链接过去,不占新空间
  • 删除旧快照用 rm -rf 即可,内核自动回收无引用的块,无需额外清理
  • 监控可用空间建议用 df -i 查 inode,硬链接多时 inode 比磁盘空间先耗尽

硬链接快照看着简单,但 --link-dest 路径必须是目标机上的绝对路径,且 rsync 运行用户要有读取权限——这两点最容易在跨用户或容器化部署时出错。

热门AI工具

更多
WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

Lovart
Lovart Hot

一款面向视觉设计创作的AI设计平台,可通过智能体和画布工作流辅助制作海报、Logo、网页、PPT及其他视觉内容。

火山引擎

火山引擎是一款面向企业的云计算与AI服务平台。

Seko
Seko Hot

一款AI视频创作工具,主要用于商汤科技推出的创编一体的AI短视频创作Agent,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

讯飞绘文

讯飞绘文是一款由科大讯飞推出的一站式 AIGC 内容运营平台。

AionClaw
AionClaw Hot

AionClaw是一款面向办公、创作和编程任务的AI桌面智能体。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

Atoms
Atoms Hot

Atoms是一款AI智能体工具,第一支自动构建真实业务的 AI 团队。

相关专题

更多
format在python中的用法
format在python中的用法

Python中的format是一种字符串格式化方法,用于将变量或值插入到字符串中的占位符位置。通过format方法,我们可以动态地构建字符串,使其包含不同值。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

1749

2023.07.31

python中的format是什么意思
python中的format是什么意思

python中的format是一种字符串格式化方法,用于将变量或值插入到字符串中的占位符位置。通过format方法,我们可以动态地构建字符串,使其包含不同值。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

1211

2024.06.27

scripterror怎么解决
scripterror怎么解决

scripterror的解决办法有检查语法、文件路径、检查网络连接、浏览器兼容性、使用try-catch语句、使用开发者工具进行调试、更新浏览器和JavaScript库或寻求专业帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

989

2023.10.18

500error怎么解决
500error怎么解决

500error的解决办法有检查服务器日志、检查代码、检查服务器配置、更新软件版本、重新启动服务、调试代码和寻求帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

3020

2023.10.25

数据库Delete用法
数据库Delete用法

数据库Delete用法:1、删除单条记录;2、删除多条记录;3、删除所有记录;4、删除特定条件的记录。更多关于数据库Delete的内容,大家可以访问下面的文章。

3091

2023.11.13

drop和delete的区别
drop和delete的区别

drop和delete的区别:1、功能与用途;2、操作对象;3、可逆性;4、空间释放;5、执行速度与效率;6、与其他命令的交互;7、影响的持久性;8、语法和执行;9、触发器与约束;10、事务处理。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

945

2023.12.29

磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

4190

2023.06.21

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

3533

2023.06.29

Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

0

2026.10.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Python uv官方安装与入门文档
Python uv官方安装与入门文档

共0课时 | 0人学习

Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn