在Linux系统中,rsync
是一个功能强大的文件同步工具,它可以实现本地或通过网络在不同位置间高效同步文件和目录。下面是一些基本的rsync
使用示例:
本地文件/目录同步
-
复制本地目录(包括子目录及其内容):
rsync -a /source/directory/ /destination/directory/
-a
参数代表归档模式,相当于-rlptgoD
,保留原文件的所有属性。 -
更新目标目录,只同步已更改的文件:
rsync -av /source/directory/ /destination/directory/
-u
或-update
参数也可以用来仅更新有变化的文件,但-a
已包含了此功能。 -
启用压缩以减少网络带宽使用(如果是在网络同步时):
rsync -avz /source/directory/ /destination/directory/
-z
参数启用压缩。
通过SSH远程同步
-
将本地目录同步到远程主机:
rsync -avz /local/path user@remote.host:/remote/path/
-e ssh
参数可以明确指定通过SSH连接,这里由于没有显式指定-e
参数,默认情况下rsync
会尝试使用ssh
连接。 -
从远程主机拉取数据到本地:
rsync -avz user@remote.host:/remote/path/ /local/path/
-
使用非默认SSH端口:
rsync -avz -e "ssh -p 2222" /local/path user@remote.host:/remote/path/
-
使用密码文件进行无交互登录(需要提前在远程主机设置好免密登录或通过
--password-file
指定密码文件):rsync -avz --password-file=/path/to/password.txt /local/path user@remote.host:/remote/path/
排除特定文件或目录
- 排除特定文件或目录不被同步:
rsync -avz --exclude='*.log' --exclude='/path/to/exclude/' /source/ /destination/
删除目标目录中源不存在的文件
- 同步的同时删除目标目录中源不再存在的文件:
rsync -avz --delete /source/directory/ /destination/directory/
请注意,在实际应用中,请替换上述示例中的 /source/
、/destination/
、user@remote.host
及其他参数为您自己的实际路径和设置。同时,确保具有对源和目标位置的适当读写权限,并且在远程同步时正确配置了SSH访问。