Liunx系统实现文件同步不需要搭建FTP这类的工具,只需要按照Rsync配置下文件就可以。
本文以Centos7.0为例。
1. 首先关闭SELINUX(不关闭无法同步,权限太高了)
vi /etc/selinux/config #编辑防火墙配置文件
#SELINUX=enforcing #注释掉
#SELINUXTYPE=targeted #注释掉
SELINUX=disabled #增加
:wq! #保存,退出
setenforce #立即生效
2. 服务端和客户端同时安装Rsync
yum install rsync xinetd #安装
3. 客户端和服务端同时新增配置文件(centos7 默认没有了,得单独手工建,否则无法启动)
vim /etc/xinetd.d/rsync
service rsync
{
disable = no
flags = IPv6
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon
log_on_failure += USERID
}
4 修改服务端配置给客户端调用
vim /etc/rsyncd.conf
log file = /var/log/rsyncd.log #日志文件位置,启动rsync后自动产生这个文件,无需提前创建 pidfile = /var/run/rsyncd.pid #pid文件的存放位置 lock file = /var/run/rsync.lock #支持max connections参数的锁文件 secrets file = /etc/rsync.pass #用户认证配置文件,里面保存用户名称和密码,后面会创建这个文件 motd file = /etc/rsyncd.Motd #rsync启动时欢迎信息页面文件位置(文件内容自定义) [test] #自定义名称 path = /data/ #rsync服务端数据目录路径 comment =rsync data comment #对那个文件夹进行描述 uid = root #设置rsync运行权限为root 推荐使用 nobody gid = root #设置rsync运行权限为root 推荐使用 nobody port= #默认端口 use chroot = no #默认为true,修改为no,增加对目录文件软连接的备份 read only = no #设置rsync服务端文件为读写权限 list = no #不显示rsync服务端资源列表 max connections = #最大连接数 timeout = #设置超时时间 auth users = test #执行数据同步的用户名,可以设置多个,用英文状态下逗号隔开 hosts allow = 192.168.21.129 #允许进行数据同步的客户端IP地址,可以设置多个,用英文状态下逗号隔开 hosts deny = 192.168.21.254 #禁止数据同步的客户端IP地址,可以设置多个,用英文状态下逗号隔开
5 新增同步用户的配置文件保存密码
vim /etc/rsync.pass
test:
6. 对配置文件进行授权
chmod /etc/rsyncd.conf #设置文件所有者读取、写入权限
chmod /etc/rsync.pass #设置文件所有者读取、写入权限
7. 重启Rsync 是用软件生效
systemctl restart xinetd
8. 客户端开始同步
首先telnet端口:
telnet 172.16.120.18 服务端同步文件到客户端:
rsync -avz test@172.16.120.252::ftp /data 客户端同步文件到服务端 rsync -av /data/ test@172.16.120.252:ftp
其中/data/ 若后面不加"/" 那/data 就是表示本身同步过去,切记!