美文网首页
使用rsync进行文件同步

使用rsync进行文件同步

作者: bychannel | 来源:发表于2020-10-26 15:44 被阅读0次

前言

近日,公司手游项目对接发行平台,这时候发行那边的运营提供了一个日志的需求,大致上是我们的游戏服按照数据采集需求进行日志上报,生成对应的log文件待用,然后运营会到上线的game服来同步log文件进行分析,从而制定不同的运营方案。根据这需求我们大致能想到使用scp、sync、rsync等同步工具来进行文件同步,这里我们选择rsync来实现。

介绍

rsync是远程(或本地)复制和同步文件最常用的命令。 借助rsync命令,你可以跨目录,跨磁盘和跨网络远程与本地数据进行复制和同步。举例来说:在两台Linux主机之间进行数据备份和镜像。本文介绍在Linux主机上进行远程和本地传输文件的常见用法,不需要root账户也可以允许rsync。

rsync的特点如下:
1.高效地复制同步数据到对端,或者对端到本地。
2.支持复制链接、设备、属主、属组、权限。
3.比scp(Secure Copy)更快。rsync使用远程更新协议( remote-update protocol ),这允许仅仅传输两组文件之间的差异。对于首次传输,它将文件或目录的全部内容从源复制到目标,但是从下次起,它仅将变化部分复制到目标。
4.rsync消耗较少的带宽,因为它使用压缩和解压缩方法,同时发送和接收数据两端。HTTP压缩技术。

配置

安装

一般的linux发行版都是预装了rsync工具,如果没有的话,请根据对应系统的包管理工具来安装一下该工具,因为安装比较简单就不详细说明了。

命令语法

rsync [options] from_dir to_dir

-v : 详细模式输出
-r : 递归拷贝数据,但是传输数据时不保留时间戳和权限
-a : 归档模式, 归档模式总是递归拷贝,而且保留符号链接、权限、属主、属组时间戳
-z : 压缩传输
-h : human-readable
-l : 保持符号连接;
-p : 保持文件原有权限;
-t : 保持文件原有修改时间;
-g : 保持文件原有用户组;
-o : 保持文件原有属主;
--progress: 显示传输过程
--exclude=PATTERN 指定排除传输的文件模式
--include=PATTERN 指定需要传输的文件模式
--delete 同步时,删除那些DST中有,而SRC没有的文件
--max-size:限定传输文件大小的上限
--dry-run:显示那些文件将被传输,并不会实际传输
--bwlimit:限制传输带宽
-W:拷贝文件,不进行增量检测

实例

  • 本地同步
rsync -zvrh test/ ~/me/test

查看结果:

ls ~/me/test

src/  test.iml
  • 远程同步
rsync -avz test/ root@192.168.51.231:/root/test_dir/

前往远程服务器查看,同样同步成功

rsync配置

rsync有一下三个配置文件:

/etc/rsyncd.conf 主配置文件,没有就手动生成
rsyncd.secrets 密码文件
rsyncd.motd rysnc服务器信息

例如:我们要备份服务器上的 /home/backup 目录,同时要把 /home 下的 file1 和 file2 目录排除在外

#先定义整体变量
secrets file = /etc/rsyncd.secrets
motd file = /etc/rsyncd.motd
read only = yes
list = yes
#uid = nobody  #nobody 为任何用户
#gid = nobody  #nobody 为任何用户组
uid = test         #
gid = test         #
hosts allow = 192.168.0.110    #哪些主机可以访问rsync服务
hosts deny = 192.168.0.0/24    #哪些主机不可以访问rsync服务
max connections = 2
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock 
#再定义要rsync的目录
[backup]
path = /home/backup
list=yes  # 允许列清单
ignore errors
auth users = test,backup
comment = backup log files
exclude = file1/  file2/ 

定义rsyncd.secrets

rsyncd.secrets是存储rsync服务的用户名和密码的,需要自己手动创建,它是一个明文的文本文件,权限设为600,只有属主可以读写,密码文件格式为:user:password

#vim /etc/rsyncd.secrets
test:123456

添加属主和权限

#chown root:root /etc/rsyncd/rsyncd.secrets
#chmod 600 /etc/rsyncd/rsyncd.secrets

定义rsyncd.secrets

rsyncd.motd主要定义用户登录rsync服务的欢迎信息,可以自己根据需求定义,跟FTP登录界面一样如:

#vim /etc/rsyncd.motd
Welcome to use the game log rsync services!

定时备份

一般使用rsync的场景有两种,一种是临时上传下载数据,类似scp,另一种是定时备份数据,这里与crontab结合使用。

#!/bin/bash
rsync -avzP  --delete  --password-file=rsyncd.secrets /home/data  root@172.25.0.150:/backup

然后使用crontab -e 配置一个合适的备份时间点执行脚本

总结

rsync使用上还是比较简单,这里直接列出的配置和使用案例基本上可以满足配置一个同步工具的需求了。

相关文章

  • rsync工具介绍、rsync常用选项、rsync通过ssh同步

    rsync工具介绍 Linux文件同步工具-rsync 安装rsync使用rsync同步到本机同步到其它机器 rs...

  • 使用inotify 监控文件变化

    文件监控可以配合rsync实现文件自动同步,例如监听某个目录,当文件变化时,使用rsync命令将变化的文件同步。(...

  • rsync通过服务同步、Linux系统日志、screen

    rsync通过服务同步 Linux文件同步工具-rsync rsync通过服务同步 Linux文件同步工具-rsy...

  • 使用rsync进行文件同步

    前言 近日,公司手游项目对接发行平台,这时候发行那边的运营提供了一个日志的需求,大致上是我们的游戏服按照数据采集需...

  • rsync

    rsync rsync命令是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件。rsync使用所谓...

  • deepin 备份迁移系统

    使用rsync同步复制文件 使用tar命令备份恢复 修复grub

  • 使用rsync同步文件

    1.1 安装 1.2 配置文件 1.2.1 服务端主机配置 /etc/rsyncd.conf /etc/rsync...

  • 数据同步工具--Rsync

    远程数据同步工具--Rsync 在服务器之间进行数据同步时,Rsync是一个很有用的工具。rsync使用所谓的“r...

  • rsync命令工具

    一、介绍 rsync命令是一个远程数据同步工具,可以通过LAN/WAN快速同步多台主机间的文件。rsync使用所谓...

  • rsync命令[非原创]

    rsync命令是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件。rsync使用所谓的“rsyn...

网友评论

      本文标题:使用rsync进行文件同步

      本文链接:https://www.haomeiwen.com/subject/bbwamktx.html