centos 文件同步

remote synchronize:一款实现远程同步功能的软件,它在同步文件的同时,可以保持原来文件的权限、时间、软硬链接等附加信息, rsync是用 “rsync 算法”提供了一个客户机     和远程文件服务器的文件同步的快速方法,而且可以通过ssh方式来传输文件,这样其保密性也非常好,另外它还是免费的软件。因为rsync是一款如此有用            的软件,所以很多Linux的发行版本都将它收录在内了
特性:

能更新整个目录
有选择性的保持符号链链、硬链接、文件属于、权限、设备以及时间等;
对于安装来说,无任何特殊权限要求;
对于多个文件来说,内部流水线减少文件等待的延时;
能用rsh、ssh 或直接端口做为传输入端口;
支持匿名rsync 同步文件,是理想的镜像工具;
架设rsync服务器:
  1.安装:

#yum方式安装

#源码方式,注意安装gcc
tar xvf rsync-xxx.tar.gz
cd rsync-xxx
./configure --prefix=/usr/local
make ;make install

rsync的主要有以下三个配置文件(需要手工创建):
/etc/rsyncd.conf(主配置文件)

/etc/rsyncd.secrets(密码文件)
  格式:user1:passwd1
  出于安全目的,文件的属性必需是只有属主可读。
  chown root.root rsyncd.secrets  #修改属主
  chmod 600 rsyncd.secrets

/etc/rsyncd.motd
  定义rysnc服务器信息的,也就是用户登录信息,可以为空
  类似ftp的欢迎页面
  示例:Welcome to use the mike.org.cn rsync services!

rsyncd.conf配置文件示例:

#Distributed under the terms of the GNU General Public License v2
#Minimal configuration file for rsync daemon
#See rsync(1) and rsyncd.conf(5) man pages for help

# This line is required by the /etc/init.d/rsyncd script
#告诉进程写到 /var/run/rsyncd.pid 文件中
pid file = /var/run/rsyncd.pid

#指定运行端口,默认是873
port = 873

#指定服务器IP地址
address = 192.168.1.171

#服务器端传输文件时,要发哪个用户和用户组来执行,默认是nobody。 如果用nobody 用户和用户组,可能遇到权限问题
#uid = nobody
#gid = nobody
uid = root
gid = root

#一个安全选项 详情自己去查查
use chroot = yes

#read only 是只读选择,也就是说,不让客户端上传文件到服务器上。还有一个 write only选项
read only = yes

#在您可以指定单个IP,也可以指定整个网段,能提高安全性。格式是ip 与ip 之间、ip和网段之间、网段和网段之间要用空格隔开
#limit access to private LANs
hosts allow=192.168.1.0/255.255.255.0 10.0.1.0/255.255.255.0
hosts deny=*

max connections = 5
motd file = /etc/rsyncd.motd

#This will give you a separate log file
#log file = /var/log/rsync.log

#This will log every file transferred - up to 85,000+ per user, per sync
#transfer logging = yes

log format = %t %a %m %f %b
syslog facility = local3
timeout = 300

#指定文件目录所在位置
[home]
path = /home
list=yes #是否可以列出目录
ignore errors # #忽略IO错误

#auth users必须是在服务器上存在的真实的系统用户,如果你想用多个用户以,号隔开,比如auth users = easylife,root
auth users = root
secrets file = /etc/rsyncd.secrets
comment = This is RHEL 4 data

#exclude是排除的意思,也就是说,要把/home目录下的easylife和samba排除在外; easylife/和samba/目录之间有空格分开
exclude = easylife/ samba/

模块定义什么呢?
  主要是定义服务器哪个目录要被同步。每个模块都要以[name]形式。这个名字就是在rsync 客户端看到的名字,其实有点象Samba服务器提供的共享名。而服务器真正同步的 数据是通过path 指定的。我们可以根据自己的需要,来指定多个模块。每个模块要指定认证用户,密码文件、但排除并不是必须的

启动rsync服务器:
/usr/bin/rsync --daemon --config=/etc/rsyncd/rsyncd.conf

--config用于指定rsyncd.conf的位置,如果在/etc下可以不写/usr/bin/rsync --daemon --config=/etc/rsyncd/rsyncd.conf
rsync有六种不同的工作模式:

  1. 拷贝本地文件;当SRC和DES路径信息都不包含有单个冒号":"分隔符时就启动这种工作模式。
  2.使用一个远程shell程序(如rsh、ssh)来实现将本地机器的内容拷贝到远程机器。当DST路径地址包含单个冒号":"分隔符时启动该模式。
  3.使用一个远程shell程序(如rsh、ssh)来实现将远程机器的内容拷贝到本地机器。当SRC地址路径包含单个冒号":"分隔符时启动该模式。
  4. 从远程rsync服务器中拷贝文件到本地机。当SRC路径信息包含"::"分隔符时启动该模式。
  5. 从本地机器拷贝文件到远程rsync服务器中。当DST路径信息包含"::"分隔符时启动该模式。
  6. 列远程机的文件列表。这类似于rsync传输,不过只要在命令中省略掉本地机信息即可。
  -a 以archive模式操作、复制目录、符号连接 相当于-rlptgoD

  rsync中的参数

  -r 是递归
  -l 是链接文件,意思是拷贝链接文件;-p 表示保持文件原有权限;-t 保持文件原有时间;-g 保持文件原有用户组;-o 保持文件原有属主;-D 相当于块设备文件;
  -z 传输时压缩;
  -P 传输进度;
  -v 传输时的进度等信息,和-P有点关系,自己试试。可以看文档;
  -e ssh的参数建立起加密的连接。
  -u只进行更新,防止本地新文件被重写,注意两者机器的时钟的同时
  --progress是指显示出详细的进度情况
  --delete是指如果服务器端删除了这一文件,那么客户端也相应把文件删除,保持真正的一致
  --password-file=/password/path/file来指定密码文件,这样就可以在脚本中使用而无需交互式地输入验证密码了,这里需要注意的是这份密码文件权限属性要设得只有属主可读。
窗户贴膜隔热防晒 深色西服浅色裤子 洗手池排水管安装图解 蓝莲花非洲鼓谱简单版 无锡中医院看痔疮好吗 双子座8月每天运势2018 上升狮子是不是很强大 tl wn725n无线网卡驱动 苏梅岛四季 江阴市人力资源招骋网 张海迪 吉他logo大全 拿破仑全面战争普鲁士轻步兵 exe文件打不开 win7 宜家 billy 知乎 skidamarink dink意思 素万那普国际机场有热水吗 木地板过门石不用压条 jquery 圆角 悠居净味白易净价格 邪恶少女漫画催眠之歌 tenxunmanhua 成都户口迁入 夫妻 番禺长隆附近的房价 现代朗动最大承重 泉州西湖度假村收费 以爱之名,冠以彼姓番外 艾叶糯米糍粑的做法 幼儿园大班队列要求 烽火佳人插曲挽留

Copyright 中易吧 Some Rights Reserved

如反馈或投诉等情况联系:une35498#163.com