rsync是一个用于文件同步和备份的常用命令行工具。它可以在本地或远程系统之间同步文件和目录,并仅复制发生更改的部分,从而提高效率。
Rsync |
---|
Rsync
无论是在设备与nas之间进行数据同步,或是nas对冷备盘的数据备份,都是一种比copy更可靠的数据传输方法。
安装和使用
00 安装rsync
1 | # Debian |
- 使用rsync同步时,传输的双方都必须安装 rsync。
01 备份和同步
使用-r
,最好是-a
来进行备份或者同步。
一个经典的同步命令:
1 | rsync -azv --delete /Path/To/A /Path/To/B |
这行命令将路径A的整个文件夹传输并完全备份到路径B,包括保持元信息、删除原先存在的文件,并详细输出。
- 默认情况下,rsync不会删除路径B中已有的内容,除非使用
--delete
选项。 - 路径末尾添加斜杠,则备份其中的内容;不添加斜杠,则备份文件夹本身。
1
2
3
4
5
6
7
8
9rsync -a source/ destination
rsync -a source/ destination/
# 这两个命令的效果相同。
# 这会将source内的文件传输到destination中。
rsync -a source destination
rsync -a source destination/
# 这两个命令的效果相同。
# 这会直接把source文件夹传输到destination中。
02 模拟和比较
使用-n
进行模拟,此时不会执行同步,配合-av
能够进行文件对比。
一个经典的模拟命令:
1 | rsync -anv --delete /Path/To/A/ /Path/To/B |
- 默认情况下,rsync不会探究文件内容的不同,只要文件大小和最后修改时间一样,rsync就会认为文件相同。
- 使用
--size-only
或者--ignore-times
可以简化比较步骤。 - 使用
--checksum
来严格执行比较。
从RSYNC 不会比较文件内容 - 阅微堂摘抄的部分段落:
1 | 通过设置合适的参数,可以控制 rsync 的比较算法。事实上, rsync 有三步来比较文件: |
03 参数
一些方便的配置参数:
1 | -a |
实例
快速同步我的笔记文件和博客文件:
1
rsync -anv --delete /DATA/Documents/Obsidian/Code/Blog/ /DATA/AppData/hexo/blog/source/_posts/
快速同步我的音乐文件夹:
1
rsync -a -u /DATA/Media/Music/ /DATA/Nas/8_音乐/ --exclude .sync
参考
还有……
我脑袋好差……理解起来好难……