当前位置: 首页 > backend >正文

rsync入门笔记

高级程序员确实更依赖终端,但并不是因为“只用终端才显得高级”,而是因为:

  1. 效率更高:终端命令可以组合/脚本化,避免重复点击。
  2. 可自动化:能集成到CI/CD、定时任务等系统中。
  3. 跨平台通用:无论用Mac/Linux/服务器,命令基本一致。
  4. 资源占用低:尤其远程操作时,比图形工具更稳定快速。

不过,工具只是手段,解决问题才是目的。根据场景灵活选择(比如紧急调试时我也会用SFTP工具快速拖文件)。以下是为你定制的rsync极简教学👇


🚀 rsync 终极入门指南

▎0. 快速认知rsync

  • 它是什么
    一个增量同步工具,只传输变化的文件部分(类似智能版scp)。
  • 核心优势
    ✅ 增量备份 | ✅ 断点续传 | ✅ 保留文件属性 | ✅ 支持排除文件

▎1. 基础命令模板

🔹 本地 → 远程服务器

rsync -avz -e "ssh -p 端口" 本地路径/ 用户名@IP:远程路径/

🔹 远程 → 本地

rsync -avz -e "ssh -p 端口" 用户名@IP:远程路径/ 本地路径/

🔹 本地文件夹同步

rsync -av 源目录/ 目标目录/

▎2. 参数解析(新手先记这4个)

参数作用示例
-a归档模式(保留权限等)-a
-v显示同步详情-v
-z压缩传输(省带宽)-z
-e指定SSH端口-e "ssh -p 2222"

▎3. 高频场景示例

📌 场景1:同步代码到服务器(排除node_modules

rsync -avz --exclude="node_modules/" -e "ssh -p 2222" ~/code/ user@1.2.3.4:/home/user/code/

📌 场景2:下载服务器日志(只拉新增内容)

rsync -avz -e "ssh -p 2222" user@1.2.3.4:/var/log/nginx/ ~/logs/

📌 场景3: ⚠️ 危险操作!双向同步(删除目标端多余文件)

rsync -av --delete 源目录/ 目标目录/

❗ 先用--dry-run测试!

rsync -av --delete --dry-run 源目录/ 目标目录/  # 模拟运行

▎4. 进阶技巧

🔸 限速传输(避免挤占带宽)

rsync -avz --bwlimit=1000  # 限速1000KB/s

🔸 断点续传(中断后重新运行即可)

rsync -avz --partial  # 保留部分传输的文件

🔸 后台运行(适合大文件)

nohup rsync -avz bigfile user@IP:/path/ > sync.log 2>&1 &
  • 日志会保存到sync.log
  • tail -f sync.log实时查看进度

▎5. 常见问题

❌ 报错:Permission denied

rsync -avz -e "ssh -p 2222" --rsync-path="sudo rsync"  # 用sudo权限同步

❌ 中文文件名乱码

rsync -avz --iconv=utf8,gbk  # 转换编码(视情况调整)

🎯 终极心法

  1. 首次操作必加-v:看清楚同步了哪些文件!
  2. 危险操作前加--dry-run:防止误删文件。
  3. 网络差时用-z + --bwlimit:压缩+限速更稳定。

💡 现在试试看:用rsync备份你的桌面文件到~/backup/吧!

rsync -av ~/Desktop/ ~/backup/

遇到具体问题随时问我,可以帮你定制命令 😊

http://www.xdnf.cn/news/6491.html

相关文章:

  • 【Redis】压缩列表
  • 打破传统束缚:Captiks 无线惯性动捕与步态分析系统如何重新定义运动测量?
  • 【内含文档PPT】基于SSM框架的智能交通信息管理系统
  • day21-线性表(链表III)
  • 网络爬虫学习之httpx的使用
  • 函数专题1
  • 【大模型面试每日一题】Day 19:如何设计自动化评估框架验证大模型的多步推理能力(如数学解题)?
  • 使用Python与正则表达式高效提取Excel中的票号数据
  • 2.Klipper开发篇:Klipper上位机源码分析
  • 时源芯微|TSFE0806U-2L-900TF复合共模滤波器在USB端口保护
  • Python函数参数传递机制深度解析:值传递与引用传递的真相
  • 理解c++中关键字友元friend的作用
  • 盲盒:拆开未知的惊喜,收藏生活的仪式感
  • 现代生活中的创新健康养生之道
  • LLM笔记(二)LLM数据基础
  • 【C++】Module CPP:模块化编程 Demo
  • 【C#】Thread.Join()、异步等待和直接join
  • C++delete详解剖析
  • 工具类来生成蓝牙指令
  • Java 序列化(Serialization)
  • 奇妙协同效应,EtherNet IP与PROFINET网关优化半导体生产线
  • Git .gitattributes 文件用途详解
  • Baklib知识中台驱动智能服务新实践
  • ZCC6303x-60V/1.2MHz 高效率升压 LED 恒流驱动替代SY7301
  • 【图片识别工具】批量单据识别批量重命名,批量OCR识别图片文字并重命名,批量改名工具的使用步骤和注意事项
  • Modbus TCP转Profinet网关:数字化工厂异构网络融合的核心枢纽
  • pciutils-3.5.5-win64工具的使用方法
  • Java大师成长计划之第23天:Spring生态与微服务架构之服务发现与注册中心
  • 使用命令行拉取 Git 仓库
  • 数学复习笔记 9