设为首页 加入收藏

TOP

rsync教程、rsync+inotufy、sersync(一)
2023-08-06 07:49:37 】 浏览:134
Tags:rsync 教程 inotufy sersync

rsync教程、rsync+inotify实时同步

rsync介绍

英文全称为Remote synchronization服务软件

rsync是一个linux应用程序,可以实现全量以及增量本地或者是远程数据同步(拷贝)备份

使用快速增量备份工具Remote Sync可以远程同步,支持本地复制,或者与其他SSHrsync主机同步

rsync与scp:rsync可以增量复制

安装

yum -y install rsync

rsync使用

语法格式:
//Rsync的命令格式常用的有以下三种:
    rsync [OPTION]... SRC DEST
    rsync [OPTION]... SRC [USER@]HOST:DEST
    rsync [OPTION]... [USER@]HOST:SRC DEST
    
常用参数:
-a, --archive: 归档模式,表示以递归方式复制文件,并保持文件的所有属性,包括权限、时间戳等。
-v, --verbose: 显示详细输出,即显示文件传输的进度和其他信息。
-z, --compress: 在传输时进行压缩,可以减少网络带宽的使用。
-r, --recursive: 递归复制文件夹及其内容。
-u, --update: 只复制源文件中新于目标文件的文件。
-c, --checksum: 使用校验和比较文件内容,而不是仅仅比较时间和大小。
-h, --human-readable: 以人类可读的格式显示输出信息,例如文件大小以K、M、G等单位显示。
-P, --progress: 显示传输进度。
--delete: 删除目标目录中不存在于源目录中的文件。
--exclude: 排除指定的文件或目录。
--include:包括指定的文件或目录,即使在排除列表中。
--exclude-from:从指定文件中读取排除列表。
--include-from:从指定文件中读取包含列表。

常用命令:
1.将本地文件复制到远程主机:
rsync [选项] 源文件/目录 远程主机:目标路径

2.将远程主机文件复制到本地:
rsync [选项] 远程主机:源文件/目录 目标路径

3.同步本地两个目录:
rsync [选项] 源目录/ 目标目录/

4.仅复制新文件或有变化的文件:
rsync -u 源目录/ 目标目录/

5.递归复制整个目录树:
rsync -r 源目录/ 目标目录/

6.删除目标目录中不存在于源目录中的文件:
rsync -r --delete 源目录/ 目标目录/

7.显示详细信息:
rsync -av 源目录/ 目标目录/

8.使用 SSH 连接远程主机:
rsync -avz -e ssh 源目录/ 远程主机:目标路径

9.源文件中有删除时,同步删除以后的文件
rsync -av --delete 源目录/ 目标目录/

rsync定时同步(ssh方式)

可以通过crontab定时使用rsync命令

例如:定时备份机器2中的数据

准备1:机器2(25)/tmp/rsync/中需要定时备份的数据 同步到机器1(28)中/tmp/backup/目录下
[ root@localhost test]# tree /tmp/rsync/
/tmp/rsync/
└── test
    ├── test2.txt
    └── test.txt
1 directory, 2 files

准备2:
因为rsync从远程主机上同步数据需要ssh密码验证,所需要先ssh-keygen
ssh-keygen 一路回车 有y 填y
ssh-copy-id root@192.168.70.25
测试一下 ssh root@192.168.70.25 可以发现直接连接上不需要密码验证

开始实验
创建crontab定时任务
crontab -e
* * * * * rsync -av root@192.168.70.25:/tmp/rsync/ /tmp/backup &>/dev/null

一分钟后 可以发现文件都同步过来了
[root@localhost tmp]# tree backup/
backup/
└── test
    ├── test2.txt
    └── test.txt
1 directory, 2 files

rsync+inotify实时同步

原理介绍

1.实时同步的方法

  • inotify rsync方法实现数据同步
  • sersync 在inotify软件基础上进行开发的,功能更强大

2.工作原理

  • 要利用监控服务,监控同步数据服务器目录中信息的变化
  • 发现目录中数据产生变化,就利用rsync服务推送到备份服务器上

inotify:

? 异步的文件系统监控机制,利用事件驱动机制,而无须通过诸如cron等轮询机制来获取时间。

? linux内核从2.6.13起支持inotify,通过inotify可以监控文件系统中添加、删除、修改、移动等各种事件。

grep -i inotify /boot/config-3.10.0-1160.el7.x86_64 
CONFIG_INOTIFY_USER=y

实现inotify软件:

  • inotify-tools
  • sersync
  • lrsyncd

inotify+rsync使用方式

  • inotify 对同步数据目录信息的监控
  • rsync 完成对数据的同步
  • 利用脚本进行结合

inotify

内核是否支持inotify

列出下面文件,说明服务器内核支持inotify
[root@localhost ~]# ls -l /proc/sys/fs/inotify/
total 0
-rw-r--r-- 1 root root 0 Jul 29 11:05 max_queued_events
-rw-r--r-- 1 root root 0 Jul 29 11:05 max_user_instances
-rw-r--r-- 1 root root 0 Jul 29 11:05 max_user_watches

[root@localhost ~]# cat /proc/sys/fs/inotify/max_queued_events 
16384
[root@localhost ~]# cat /proc/sys/fs/inotify/max_user_instances 
128
[root@localhost ~]# cat /proc/sys/fs/inotify/max_user_watches 
8192

inotify内核参数说明:

  • max_queued_events:inotify事件队列最大长度,如值太小会出现Event Queue Overflow错误,默认值:16384,生产环境建议调大,比如:327679
  • max_user_instances:每个用户创建inotify实例最大值,默认值:128
  • max_user_watches:可以监视的文件总数量(inotifywait 单进程),默认值:8192,建议调大

范例:

在/etc/sysctl.conf最下面添加
[root@localhost ~]# vim /etc/sysctl.conf 
fs.inotify.max_queued_events=327679
fs.inotify.max_user_watches=100000

[root@localhost ~]# sysctl -p
fs.inotify.max_queued_
首页 上一页 1 2 3 4 下一页 尾页 1/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇实时嵌入式Linux设备基准测试快速.. 下一篇上下文切换性能篇

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目