rsync命令是Linux和其他Unix-like系统上一个非常强大的命令行工具,主要用于数据同步和文件传输。它的名字是"remote sync"的缩写,但不仅限于远程同步,也支持本地文件和目录之间的同步。rsync的主要优势在于其高效的增量传输方式,即只传输源和目标之间发生变化的文件块,而不是整个文件。以下是rsync命令的详细解释: 一、基本功能 数据同步:在本地或远程主机之间同步文件和目录。 增量传输:只传输变化的文件块,减少数据传输量。 多种选项:提供丰富的选项来满足不同的同步需求。 二、常用选项 选项 说明 -a, --archive 归档模式,递归并保留对象属性,等同于-rlptgoD。 -v, --verbose 显示同步过程的详细(verbose)信息。 -r, --recursive 递归模式,包含目录及子目录中所有文件。 -l, --links 对于软链接文件仍然复制为软链接文件。 -p, --perms 保留文件的权限标记。 -t, --times 保留文件的时间标记。 -g, --group 保留文件的属组标记(仅超级用户使用)。 -o, --owner 保留文件的属主标记(仅超级用户使用)。 -D 保留设备文件及其他特殊文件。 -z, --compress 在传输文件时进行压缩。 -H, --hard-links 保留硬链接。 -A, --acls 保留ACL属性(隐含--perms)。 --delete 删除目标位置有而原始位置没有的文件。 --exclude='pattern' 排除与指定模式匹配的文件或文件夹。 --exclude-from='file' 从指定文件中读取排除模式,并进行同步。 --include='pattern' 只包括与指定模式匹配的文件或文件夹。 --include-from='file' 从指定文件中读取包含模式,并进行同步。 --progress 显示同步进度和速度信息。 --dry-run 模拟同步操作,显示将要发生的更改,但不实际执行。 --bwlimit=KBPS 限制带宽使用率,以KB/s为单位。 三、使用方法 rsync的使用方法非常灵活,可以通过多种方式进行文件同步,包括通过远程shell或rsync守护进程。基本的使用格式如下: 本地同步:rsync [OPTION]... SRC... [DEST] 通过远程shell同步(拉取):rsync [OPTION]... [USER@]HOST:SRC... [DEST] 通过远程shell同步(推送):rsync [OPTION]... SRC... [USER@]HOST:DEST 通过rsync守护进程同步(拉取):rsync [OPTION]... [USER@]HOST::SRC... [DEST] 通过rsync守护进程同步(推送):rsync [OPTION]... SRC... [USER@]HOST::DEST 四、应用实例 将本地目录复制到远程主机: bash复制代码 rsync -avz /local/dir/ user@remote:/remote/dir/ 从远程主机复制目录到本地: bash复制代码 rsync -avz user@remote:/remote/dir/ /local/dir/ 使用SSH协议进行远程复制(等同于上述示例,因为rsync默认使用SSH): bash复制代码 rsync -avz -e ssh /local/dir/ user@remote:/remote/dir/ 仅列出远程主机上的文件而不复制: bash复制代码 rsync -avzn user@remote:/remote/dir/ /local/dir/ 使用rsync进行增量备份: bash复制代码 rsync -avz --backup --backup-dir=/backup/dir/ /source/dir/ /destination/dir/ 限制传输带宽: bash复制代码 rsync -avz --bwlimit=500 /source/dir/ /destination/dir/ 测试: 同步本地test目录到远程服务器192.168.1.200 的test目录 rsync -avhpW --no-compress -P4 --progress /test/ root@192.168.1.200:/test/
|
|