Rsync文件同步

Ubuntu18.04

服务端

修改/etc/default/rsync文件

#Ubuntu18.04默认已安装rsync,首先编辑/etc/default/rsync,使其可用
sudo sed -i 's/RSYNC_ENABLE=false/RSYNC_ENABLE=true/' /etc/default/rsync 
#复制配置文件
sudo cp /usr/share/doc/rsync/examples/rsyncd.conf /etc

修改/etc/rsyncd.conf的配置文件

#motd file=/etc/motd
#开启日志功能
log file=/var/log/rsyncd

# for pid file, do not use /var/run/rsync.pid if
# you are going to run rsync out of the init.d script.
# The init.d script does its own pid file handling,
# so omit the "pid file" line completely in that case.
#进程号
pid file=/var/run/rsyncd.pid
#指定rsync发送日志消息给syslog时的消息级别,常见的消息级别是:uth, authpriv, cron, daemon, ftp, kern, lpr, mail, news, security, sys-log, user, uucp, local0, local1, local2, local3,local4, local5, local6和local7。默认值是daemon。
syslog facility=daemon
#socket options=

# MODULE OPTIONS
[ftp]
    #定义注释说明字串
    comment = ppa 
    #指定同步目录的真实路径
    path = /home/pchuant/devppa
    use chroot = no
    #并发的连接数
    max connections=10
    #锁文件名称
    lock file = /var/lock/rsyncd
    #是否允许用户上传数据,这里设置为只读
    read only = yes
    #客户端请求显示模块列表时,模块本身名称是否显示
    list = yes
    #数据同步所用用户
    uid = pchuant
    #数据同步所用组名称
    gid = pchuant
    #可以指定例外的目录,即将common目录下的某个目录设置为不同步数据
#   exclude = 
    #
#   exclude from = 
#   include =
#   include from =
    #允许连接服务器的用户,可以使系统中不存在的用户
    auth users = tom
    #保存密码的文件,建议设置为600,仅在auth users设置后有效
    secrets file = /etc/rsyncd.secrets
    strict modes = yes
    #允许哪些主机可以同步数据,可以是单个ip,也可以是网段,多个IP与网段之间使用空格分隔
    hosts allow = 10.10.8.44
    #设置拒绝所有(除了hosts allow定义的主机外)
    hosts deny = *
#   #在运行delete操作时是否忽略I/O错误
    ignore errors = yes
    #忽略那些没有访问文件权限的用户
    ignore nonreadable = yes
    #开启Rsync数据传输日志功能
    transfer logging = yes
    #定义rsyncd.log日志的格式
#   log format = %t: host %h (%a) %o %f (%l bytes). Total %b bytes.
    timeout = 600
    refuse options = checksum dry-run
    #告诉rysnc那些文件在传输前不用压缩,默认已设定压缩包不再进行压缩
    dont compress = *.gz *.tgz *.zip *.z *.rpm *.deb *.iso *.bz2 *.tbz

日志格式选项列表:

%h: 远程主机名
%a: 远程IP地址
%l: 文件长度字符数
%p: 该次rsync会话的进程id
%o: 操作类型:"send"或"recv"、”del.”
%f: 文件名
%P: 模块路径
%m: 模块名
%t: 当前时间
%u: 认证的用户名(匿名时是null)
%b: 实际传输的字节数
%c: 当发送文件时,该字段记录该文件的校验码

客户端

使用rsync命令同步,将rsync.conf的ftp模块定义的路径下载至/home/pchuant/test

rsync -vzrtopg --progress  [email protected]::ftp  /home/pchuant/test

-v:显示详细信息
-z:传输过程对数据压缩
-r:递归
-t:保留修改时间属性
-o:保留文件所有者属性
-g:保留文件所属组属性
--progress:显示数据传输的进度信息

  • 查看模块(list=true才可以查询)
rsync --list-only [email protected]::
  • 客户端创建rsync.pass文件,该文件只包含密码,使用--password-file指定密码文件,省去输入密码的步骤
echo "123456" >> rsync.pass
rsync --password-file=rsync.pass --list-only [email protected]::

你可能感兴趣的:(Rsync文件同步)