使用rsync在Linux服务器之间同步复制文件
无论您是需要在本地复制文件还是将它们传输到远程服务器,都可以使用rsync(文件同步实用程序)来实现。
获取rsync
以下命令为CentOS发行版安装rsync:
sudo yum安装rsync
对于Debian和Ubuntu:
sudo apt-get install rsync
在本地复制文件
要在同一台计算机上复制/ source / to / destination /的内容,请运行:
rsync --archive --verbose --progress / source / / destination /
通过使用–archive选项,我们以递归方式将/ source / contents 复制到/ destination /目录,包括符号链接,权限,修改时间,所有者,组和文件模式数据。该–progress显示传输过程中的进步,–verbose增加冗长。
如果/ destination /目录不存在,则将创建它。如果/ destination /目录已存在且包含/ source /目录不包含的某些文件,则将保留这些文件。
Rsync使用一种算法,通过仅移动已更改的文件部分来最小化流量。
从远程系统复制文件
使用rsync,您可以依靠SSH进行远程数据传输。在开始之前,请确保:
rsync客户端安装在本地和远程计算机上;
您可以使用“ssh user @ remotehost”命令建立与远程计算机的SSH连接。
要从远程服务器传输文件,请指定远程源目录的完整路径,包括远程主机上的用户名,以及本地目录的完整路径:
rsync --archive --verbose --progress user @ remotehost:/ remote / source / / local / destination /
在此示例中,我们将远程主机上/ source /目录的内容复制到执行rsync命令的本地计算机上的/ destination /目录。根据计算机上配置的SSH身份验证方法,执行rsync命令时可能会提示您输入SSH密码或其他凭据。
将文件复制到远程系统
要通过SSH将文件传输到远程服务器,请指定本地源目录的完整路径以及远程目录的完整路径,包括远程主机上的用户名:
rsync --archive --verbose --progress / local / source / user @ remotehost:/ remote / destination /
尾随斜线
指定源目录的路径时,请注意目录名末尾的尾部斜杠 – /符号 – 。尾部斜杠表示“内容”。例如,如果/ source /上有一个尾部斜杠,rsync会将/ source /的内容复制到/ destination /。如果/ source上没有尾部斜杠,rsync将在/ destination /创建一个具有相同名称的目录,并将/ source /的所有内容复制到/ destination / source /。相反,/ destination /上的尾部斜杠没有任何区别。
在rsync的守护进程
如果需要通过专用网络复制大量信息,请考虑设置rsync守护程序。守护进程的使用消除了SSH隧道的开销,但数据未加密传输。
有关如何在守护程序模式下启动rsync的说明,请参阅rsync文档,以及有关rsyncd.conf配置文件的详细信息。
rsync官网:http://rsync.samba.org/