rsync
只同步目录结构而不同步文件,可以通过以下命令实现:,,“sh,rsync av include '*/' exclude '*' source/ destination/,
`,,这个命令中:,
a 表示归档模式,保留文件属性。,
v 表示详细输出。,
include ‘*/’ 表示包含目录。,
exclude ‘*’` 表示排除所有文件。使用 Rsync 只同步目录结构不同步文件的方法
Rsync 是一个强大的文件和目录同步工具,常用于保持本地和远程系统之间的数据一致性,在某些情况下,我们可能只需要同步目录结构而不需要同步实际的文件,这可以通过使用include
和exclude
参数来实现。
基本命令格式
要实现只同步目录结构而不同步文件,可以使用以下基本命令格式:
rsync av include='*/' exclude='*' /source/directory /destination/directory
a
:归档模式,表示以递归方式进行同步,并保留文件的权限、时间戳等属性。
v
:详细输出模式,显示同步过程中的详细信息。
include='*/'
:仅包含目录。
exclude='*'
:排除所有文件。
示例
假设有一个源目录/var/www/html
,我们想将其目录结构同步到目标目录/backup/html
,但不同步其中的文件,可以使用以下命令:
rsync av include='*/' exclude='*' /var/www/html /backup/html
此命令会将/var/www/html
下的目录结构同步到/backup/html
,但不会复制任何文件。
多个目录同步
如果需要同步多个特定目录,可以使用includefrom
选项从一个文件中读取要包含的目录列表,创建一个包含要同步的目录名称的文件dirs.txt
:
dir1/ dir2/ dir3/
然后运行以下命令:
rsync av includefrom='dirs.txt' exclude='*' /source/directory /destination/directory
这将同步dir1
、dir2
和dir3
这三个目录的结构,而不同步其他文件。
FAQs
Q1: 是否可以在 Windows 上使用 rsync?
A1: 是的,可以在 Windows 上使用 rsync,但需要安装支持的工具,如 Cygwin 或通过 WSL(Windows Subsystem for Linux)来运行,Cygwin 提供了一个类似 Unix 的环境,可以直接使用 rsync;WSL 则允许在 Windows 上运行原生的 Linux 命令。
Q2: 如何定时执行 rsync 任务?
A2: 可以使用 cron(在类 Unix 系统上)或 Task Scheduler(在 Windows 上)来定时执行 rsync 任务,在 Unix 系统上,可以编辑 crontab 文件,添加类似以下内容来实现每小时同步一次:
0 * * * * rsync av include='*/' exclude='*' /source/directory /destination/directory
在 Windows 上,可以使用 Task Scheduler 创建一个新任务,设置触发器为按计划运行,并在操作中调用 rsync 命令。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1100093.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复