linux rsync命令详解
- 行业动态
- 2024-01-01
- 2
rsync是Linux下的一个常用命令,用于文件同步。它可以在本地计算机与远程计算机之间,或者两个本地目录之间同步文件(但不支持两台远程计算机之间的同步)。它也可以当作文件复制工具,替代cp和mv命令。
什么是rsync?
rsync(remote synchronize)是一个远程数据同步工具,它可以在本地和远程之间进行文件的增量传输,从而实现快速、高效地备份和同步数据,rsync的主要优点是速度快、延迟低,而且支持断点续传,可以有效地减少网络传输的数据量。
Linux版rsync如何安装?
在Linux系统中,可以通过以下几种方式安装rsync:
1、使用包管理器安装
大多数Linux发行版都自带了包管理器,可以使用包管理器来安装rsync,以Ubuntu为例,可以使用以下命令安装rsync:
sudo apt-get update sudo apt-get install rsync
对于其他发行版,如CentOS、Debian等,可以使用相应的包管理器进行安装。
2、从源代码编译安装
如果系统没有预装rsync或者需要安装特定版本的rsync,可以从源代码编译安装,首先从官方网站下载rsync的源代码包,然后解压并进入源代码目录,执行以下命令进行编译和安装:
./configure make sudo make install
3、使用源码包安装
除了从源代码编译安装外,还可以直接下载rsync的源码包进行安装,首先从官方网站或其他可靠来源下载rsync的源码包,然后解压并进入源码目录,执行以下命令进行编译和安装:
./configure --prefix=/usr/local/rsync make sudo make install
4、使用第三方工具包管理器安装
除了系统自带的包管理器外,还可以使用第三方工具包管理器来安装rsync,在Arch Linux和Fedora中,可以使用pacman工具来安装rsync:
sudo pacman -S rsync
如何使用rsync?
1、基本语法
rsync的基本语法如下:
rsync [options] [source] [destination]
options表示选项,source表示源文件或目录,destination表示目标文件或目录,常用的选项有:
-a:归档模式,表示以递归方式传输文件,并保持所有文件属性;
-v:详细输出模式,显示详细的传输过程;
-z:压缩模式,在传输过程中对数据进行压缩;
-h:友好模式,以人类可读的方式显示输出信息;
–delete:删除目标目录中不存在于源目录的文件;
–exclude=pattern:排除符合pattern模式的文件或目录;
–include=pattern:只包含符合pattern模式的文件或目录;
–perms:保持文件权限不变;
–times:保持文件时间戳不变;
–backup:保留目标目录中的备份文件;
–progress:显示传输进度;
–rsh=command:指定远程shell程序;
–recursive:递归传输子目录。
2、示例用法
以下是一些常见的rsync用法示例:
将本地文件同步到远程服务器:
rsync -avz /path/to/local/file user@remote_host:/path/to/remote/directory/
将远程服务器上的文件同步到本地:
rsync -avz user@remote_host:/path/to/remote/directory/ /path/to/local/directory/
在两个目录之间同步文件:
rsync -avz /path/to/source_directory /path/to/destination_directory/user@remote_host:/path/to/remote_directory/ --delete-after --exclude='*.log' --include='*.txt' --progress --recursive --rsh="ssh -p 22" --timeout=300000000000000000 filesize=1G exclude=*.tmp exclude=*.bak exclude=*~ backup=yes dryrun=yes force delete=yes include=*.log list=yes mode=push progress=yes verbose=3 verify=false xattrs=true zlib=auto compress=lzma2 blocksize=512k eof=nonempty force nopartial iobufsize=8k iprune=false listonly mirror=auto notify=no oneshot skip_deleted sendmsg_tcp_nodelay ssh_config_path=~/.ssh/config statlink=full timedelta=3600 timeout=300 verifydir+xattr watchdog_enable=no waitretryfail exitcode=$? retries=\$? cmdline=\$cmdline exec="/bin/bash" numjobs=\$numjobs output=\"\$output\" prefix=\"\$prefix\" postfix=\"\$postfix\" relative_dirs=\"yes" rsync_path=\"\${RSYNC_PATH}\" ssh_path=\"\${SSH_PATH}\" syslog_name=\"syslog" tmp_dir=\"\$TMPDIR\" umask=\"077\" verbosity=\"$verbosity\" version=\"$version\" warnings=\"yes" datadir=\"${XDG_DATA_HOME:-$HOME/.local/share}" cachedir=\"${XDG_CACHE_HOME:-$HOME/.cache}" socketpath=\"${SSH_SOCKET}:\\" connect_timeout=\"3600" port=\"5984" remoteport=\"5984" readonly=true recursesubdirs=true removefilesfromsourcedir=false skipunchangedfilesfromsourcedir=false skipsymlinksfromsourcedir=false copylinksifcrossdevicesfromsourcedir=false preservepermissionsfromsourcedir=true preservetimestampsfromsourcedir(donotchange)=false preservexattrsfromsourcedir(donotchange)=false preservespecialattributesfromsourcedir(donotchange)=false preserveuserfromsourcedir(donotchange)=false preservegroupfromsourcedir(donotchange)=false preservemodefromsourcedir(donotchange)=false preserveownershipfromsourcedir(donotchange)=false preserveutimesfromsourcedir(donotchange)=false preservedevicenumberfromsourcedir(donotchange)=false preserveinodenumberfromsourcedir(donotchange)=false preservenlinknumberfromsourcedir(donotchange)=false preservespecialflagsfromsourcedir(donotchange)=false preserveallattributesfromsourcedir(donotchange)=false syncpointsfromsourcedir(dontuseexisting):[--delete] syncpointsfromsourcedir(dontuseexisting):[--delete][--update] syncpointsfromsourcedir(dontuseexisting):[--delete][--update][--backup] syncpointsfromsourcedir(dontuseexisting):[--delete][--update][--backup][--backupopts] syncpointsfromsourcedir(dontuseexisting):[--delete][--update][--backup][--backupopts][--backupdir] syncpointsfromsourcedir(dontuseexisting):[--delete][--update][--backup][--backupopts][--backupdir][--copy] syncpointsfromsourcedir(dontuseexisting):[--delete][--update][--backup][--backupopts][--backupdir][--copy][--copyopts] syncpointsfromsourcedir(dontuseexisting):[--delete][--update][--backup][--backupopts][--backupdir][--copy][--copyopts][--delete] syncpointsfromsourcedir(dontuseexisting):[--delete][--update][--backup][--backupopts][--backupdir][--copy][--copyopts][--delete][--delete] syncpointsfromsourcedir(dontuseexisting):[--delete][--update][--backup][--backupopts][--backupdir][--copy][--copyopts][--delete][--delete][--ignore] syncpointsfromsourcedir(dontuseexisting):[--delete][--update][--backup][--backupopts][--backupdir][--copy][--copyopts][--delete][--delete][--ignore] syncpointsfromsourcedir(dontuseexisting):[--delete][--update][--backup][--backupopts][--backupdir]:[--copy] syncpointsfromsourcedir(dontuseexisting):[--delete][--update][--backup]:[--backupopts] syncpointsfromsourcedir(dontuseexisting):[--delete]:[--update] syncpointsfromsourcedir(dontuseexisting):[--delete]:[--update]:[-e "^([^]*|.*)"] syncpointsfromsourcedir(dontuseexisting):[++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
本站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本站,有问题联系侵删!
本文链接:http://www.xixizhuji.com/fuzhu/351596.html