1.什么是rsync?
rsync 是一个linux,Unix系统下的文件同步和传输工具。rsync是用 “rsync 算法”提供了一个客户机和远程文件服务的文件同步的快速方法。
Some features of rsync include
rsync 包括如下的一些特性:
* can update whole directory trees and filesystems
能更新整个目录和树和文件系统;
* optionally preserves symbolic links, hard links, file ownership, permissions, devices and times
有选择性的保持符号链链、硬链接、文件属于、权限、设备以及时间等;
* requires no special privileges to install
对于安装来说,无任何特殊权限要求;
* internal pipelining reduces latency for multiple files
对于多个文件来说,内部流水线减少文件等待的延时;
* can use rsh, ssh or direct sockets as the transport
能用rsh、ssh 或直接端口做为传输入端口;
* supports anonymous rsync which is ideal for mirroring
支持匿名rsync 同步文件,是理想的镜像工具;
2.rsync配置:server端的配置文件有rsyncd.conf rsyncd.motd rsyncd.secrets
rsyncd.conf :是rsync服务器主要配置文件
[root@localhost ~]# cat /etc/rsyncd.conf secrets file = /etc/rsyncd.secrets motd file = /etc/rsyncd.motd read only = yes list = yes uid = nobody gid = nobody max connections = 2 log file = /var/log/rsyncd.log pid file = /var/run/rsyncd.pid lock file = /var/run/rsync.lock [wwwroot] comment = Share directory path = /rsyncdir/mydir auth users = rsync read only =no
注: 关于 auth users 是必须在服务器上存在的真实的系统用户,如果你想用多个用户,那就以,号隔开;比如 auth users = beinan , linuxsir
注:read only 是只读选择,也就是说,不让客户端上传文件到服务器上。
注:list 意思是把rsync 服务器上提供同步数据的目录在服务器上模块是否显示列出来。默认是yes 。如果你不想列出来,就no ;如果是no是比较安全的,至少别人不知道你的服务器上提供了哪些目录。你自己知道就行了;
密码文件:/etc/rsyncd/rsyncd.secrets的内容格式为:用户名:密码
[root@localhost ~]# cat /etc/rsyncd.secrets rsync:rsync
rsyncd.motd 文件,它是定义rysnc 服务器信息的,也就是用户登录信息。比如让用户知道这个服务器是谁提供的等;类似ftp服务器登录时,我们所看到的 linuxsir.org ftp ……。 当然这在全局定义变量时,并不是必须的,你可以用#号注掉,或删除;我在这里写了一个 rsyncd.motd的内容为:
[root@localhost ~]# more /etc/rsyncd.motd Welcome to use the rsync services!
3.启动rsync服务
启动rsync 服务器相当简单,--daemon 是让rsync 以服务器模式运行:
rsync --daemon
注: 如果你找不到rsync 命令,你应该知道rsync 是安装在哪了。运行whereis rsync
4.客户端
rsync -vazu /data/ rsync@hostip::wwwroot --password-file=/etc/rsyncd.secrets