基于rsync的文件同步传输
基于rsync的文件同步传输
一、实验目的
我们经常有一些文件需要异地备份,这里我们使用rsync能简单的进行异地备份,rsync不是同步传输的,所以更适合异地备份。
二、安装rsync
rsync.* 可以使用rpm包安装或者直接yum安装。
三、配置服务端
rsync默认装好后没有安装配置我们,所以我们需要自己创建配置文件。
配置文件 1: /etc/rsync.conf
uid = nobody #rsync操作文件的时候使用的用户
gid = nobody #rsync操作文件的时候使用的用户组
use chroot = no #是否启用chroot
max connections = 4 #最大连接数
pid file = /var/run/rsync.pid #存储pid的文件
lock file = /var/run/rsync.lock #锁文件存储地址
log file = /var/log/rsyncd.log #日志文件存放位置
motd file = /var/log/rsyncd.motd #登录欢迎信息
hosts allow = 127.0.0.1 192.168.0.0/24 #运行连接的主机
auth users = BackupUser,Keny #用户名(非系统用户)
secrets file = /etc/rsyncd.secrets #对应用户名的密码文件
[www] #共享名
path = /var/www #路径(绝对路径)
comment = apacheWWWfiles #描述
read only = true #是否只读
list = false #是否能列表
在上述配置文件中有几个配置文件需要我们手动去书写:
配置文件 2: /var/log/rsyncd.motd
welcome using rsync service!
secrets这个文件里是 用户名:密码的格式,密码是明文书写的,所以我们需要把这个文件的权限设置为600,为了账户安全性。
书写完后这些文件后,我们需要修改他们的权限为600.
设置文件权限
chmod 600 /etc/rsyncd.conf
chmod 600 /etc/rsyncd.motd
chmod 600 /etc/rsyncd.secrets
由于rsync服务是由xinetd来管理的一个服务,所以我们还需要去修改相关的服务设置文件。
配置文件 4: /etc/xinetd.d/rsync
service rsync
{
disable = no #开启该服务
flags = IPv4
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon
log_on_failure += USERID
}
经过以上这些配置后,我们需要重启xinetd,来启用我们的rsync服务端。
service xinetd restart
四、客户端使用服务
我们之前服务端配置的密码非常繁杂而难以记忆,而且手工输入这些密码也是非常痛苦的,这里我们可以设置一个文件来保存我们需要使用用户对应的密码。
echo 132fds98z2sd234dfg > ~/rsyncClient.passwd
chmod 600 ~/rsyncChient.passwd
这里我们在家目录下面创建了一个保存密码的文件并且设置权限为600,如果权限不设置的话后面rsync的客户端会警示且要求手工输入密码。
接下来我们使用客户端工具来同步服务端的内容,首先进入到我们需要同步文件的目录。
接下来,运行rsync客户端
rsync -Rav –delete –password-file=~/rsyncClient.passwd BackupUser@192.168.0.32::www /tmp/www
运行完以上这条命令后,就把服务端的www共享下的文件全部同步/tmp/www目录下
-Rav 表示相对路径,归档模式和显示详细信息
-delete 表示若同步到的目录下有服务端没有的文件,删除之
-password-file 指定密码文件的位置
后面的格式是 用户名@IP::共享名 /同步到的目录
五、总结
本文简单的描述的rsync的服务端设置和客户端的使用,从配置过程可见rsync是一个易用的同步工具。