什么是rsync?
rsync是一种在UNIX和Linux系统中使用的开源软件,可以在本地或远程系统之间快速、可靠地同步和备份文件和目录。它通过增量更新,即只传输更改的部分,而不是整个文件来完成同步。
安装rsync
在大多数Linux发行版中rsync都是默认安装的,如果您使用的是其他操作系统,请前往rsync官网进行下载和安装。
使用rsync同步本地文件
将源目录同步到一个目标目录中:
rsync -avh /path/to/source /path/to/destination
其中,-a参数表示使用归档模式,该模式将保留文件的特性,如权限和时间戳;-v参数表示使用详细模式,即输出过程中显示详细进度;-h参数表示人类可读,通过使用k、M、G等单位来可读化数字。
使用rsync同步远程文件
将资源机器上的文件同步到目标机器上:
rsync -avh username@sourceserver:/path/to/source /path/to/destination
其中,username是资源机器上的用户名,sourceserver是资源机器的地址,:/path/to/source是要同步的资源路径。
使用rsync同步整个目录树
同步整个目录树,使用如下命令:
rsync -avzh /path/to/source/ /path/to/destination/
注意,在源目录路径和目标目录路径后都加上了斜杠,这是指同步整个目录树。
使用rsync同步排除文件和目录
有时候您可能需要排除一些文件或者目录,可以使用--exclude参数来排除:
rsync -avzh --exclude 'dir1' --exclude 'file.txt' /path/to/source/ /path/to/destination/
在上面的命令中,--exclude 'dir1'表示排除名为「dir1」的目录;--exclude 'file.txt'表示排除名为「file.txt」的文件。
使用rsync同步大量文件
如果要同步大量的文件,您可以开启--progress参数来显示同步进度,同时可以使用--bwlimit参数来限制同步速度,避免耗费过多网络带宽:
rsync -avzh --progress --bwlimit=1000 /path/to/source/ /path/to/destination/
在上面的命令中,--bwlimit=1000表示限制同步速度为1000 KB/s。
使用rsync同步文件并压缩
如果您需要在同步期间压缩文件,可以使用--compress参数:
rsync -avzh --compress /path/to/source/ /path/to/destination/
在上面的命令中,--compress参数表示在同步过程中压缩文件。
使用rsync同步修改文件权限和所有权
如果您需要在同步期间修改文件权限和所有权,请使用--chmod和--chown参数:
rsync -avzh --chmod=ugo=rwX --chown=username:groupname /path/to/source/ /path/to/destination/
在上面的命令中,--chmod=ugo=rwX表示同步期间将所有文件权限设置为「rwx」,--chown=username:groupname表示将所有权赋予「username」和「groupname」。
结论
rsync是一个功能强大的工具,可以在本地或者远程系统中有效地同步和备份文件和目录。