inotify

rsync

放肆的年华 提交于 2020-07-25 15:38:43
rsync 文章目录 rsync rsync简介 rsync特性 rsync的ssh认证协议 rsync命令 rsync+inotify 6.rsync常见报错信息处理 1. rsync简介 rsync是linux系统下的数据镜像备份工具。使用快速增量备份工具Remote Sync可以远程同步,支持本地复制,或者与其他SSH、rsync主机同步。 2. rsync特性 可以镜像保存整个目录树和文件系统 可以很容易做到保持原来文件的权限、时间、软硬链接等等 无须特殊权限即可安装 快速:第一次同步时rsync会复制全部内容,但在下一次只传输修改过的文件。rsync在传输数据的过程中可以实行压缩及解压缩操作,因此可以使用更少的带宽 安全:可以使用scp、ssh等方式来传输文件,当然也可以通过直接的socket连接 支持匿名传输,以方便进行网站镜象 3. rsync的ssh认证协议 rsync命令来同步系统文件之前要先登录remote主机认证,认证过程中用到的协议有2种: ssh协议 rsync协议 rsync server端不用启动rsync的daemon进程,只要获取remote host的用户名和密码就可以直接rsync同步文件 rsync server端因为不用启动daemon进程,所以也不用配置文件/etc/rsyncd.conf ssh认证协议跟scp的原理是一样的

inotify don't treat vim editting as a modification event

心不动则不痛 提交于 2020-06-08 11:54:55
问题 my example code below watches a file for being modified. let's say the file being wathched is foo.txt, and the binary name came out from the sample code is inotify. I did two test for the sample code. test1: 1) ./inotify foo.txt 2) echo "hello" > foo.txt then everything works fine,and " file modified " has been printed out. test2: 1) ./infity foo.txt 2) vim foo.txt 3) edit somehow and save,but don't quit vim the printed out line is unknown Mask 0x00008000 , checked out the inotify header file

inotify don't treat vim editting as a modification event

给你一囗甜甜゛ 提交于 2020-06-08 11:54:41
问题 my example code below watches a file for being modified. let's say the file being wathched is foo.txt, and the binary name came out from the sample code is inotify. I did two test for the sample code. test1: 1) ./inotify foo.txt 2) echo "hello" > foo.txt then everything works fine,and " file modified " has been printed out. test2: 1) ./infity foo.txt 2) vim foo.txt 3) edit somehow and save,but don't quit vim the printed out line is unknown Mask 0x00008000 , checked out the inotify header file

inotify don't treat vim editting as a modification event

心不动则不痛 提交于 2020-06-08 11:54:38
问题 my example code below watches a file for being modified. let's say the file being wathched is foo.txt, and the binary name came out from the sample code is inotify. I did two test for the sample code. test1: 1) ./inotify foo.txt 2) echo "hello" > foo.txt then everything works fine,and " file modified " has been printed out. test2: 1) ./infity foo.txt 2) vim foo.txt 3) edit somehow and save,but don't quit vim the printed out line is unknown Mask 0x00008000 , checked out the inotify header file

.net core 发布linux报错“The configured user limit (128) on the number of inotify instances has been r...

六眼飞鱼酱① 提交于 2020-05-08 04:12:46
https://stackoverflow.com/questions/45875981/error-while-reading-json-file-in-dotnet-core-the-configured-user-limit-128-on var builder = new ConfigurationBuilder() .AddJsonFile($"appsettings.json", true, true); You are creating file watchers, every time you access an setting. The 3rd parameter is reloadOnChange. You have to make sure, var configuration = builder.Build() is only called once in your application and store it in a place where you can access it (preferably AVOID static fields for it). Or just disable the file watcher. var builder = new ConfigurationBuilder() .AddJsonFile($

Linux内核设计与实现 总结笔记(第六章)内核数据结构

≡放荡痞女 提交于 2020-04-28 01:22:48
内核数据结构 Linux内核实现了这些通用数据结构,而且提倡大家在开发时重用。 内核开发者应该尽可能地使用这些数据结构,而不要自作主张的山寨方法。 通用的数据结构有以下几种:链表、队列、映射和二叉树 一、链表 1.1 单向链表和双向链表 链表是Linux中最简单、最普通的数据结构。 最简单的数据结构表示一个链表: /* 一个链表中的一个元素 */ struct list_element { void *data; /* 有效数据 */ struct list_element *next; /* 指向下一个元素的指针 */ }; list_element 然后还有双向链表 /* 一个链表中的一个元素 */ struct list_element { void *data; /* 有效数据 */ struct list_element *next; /* 指向下一个元素的指针 */ struct list_element *prev; /* 指向前一个元素的指针 */ }; list_element 1.2 环形链表 通常情况下,链表最后一个元素后面没有元素了,所以将链表元素中的向后指针设置为NULL,以此表明是链表中的最后一个元素。 在有些链表中,链表尾元素指向链表首元素,这种链表首位相连,被称为 环形链表 。 1.3 沿链表移动 只能是线性移动,先访问某个元素,然后访问下一个元素

linux使用Inotify监控目录或者文件状态变更

喜你入骨 提交于 2020-04-10 14:38:34
基本概念: Inotify 是一个 Linux特性,它监控文件系统操作,比如读取、写入和创建。Inotify 反应灵敏,用法非常简单,并且比 cron 任务的繁忙轮询高效得多。 需求: 1.有一个文件采集进程,需要对日志文件进行采集,日志文件可能会被删除,可能会被移动。 2.我们都知道文件一旦被删除或者移动,那么进程使用原有打开的文件fd就无法继续读取文件数据。 3.那么就需要监控文件的创建,移动,删除等状态,以便重新打开文件,所以需要使用Inotify来做这件事。 源码inotfy.c #include <stdio.h> #include <string.h> #include <stdlib.h> #include <sys/inotify.h> #include <unistd.h> #define EVENT_NUM 12 char *event_str[EVENT_NUM] = { "IN_ACCESS", "IN_MODIFY", //文件修改 "IN_ATTRIB", "IN_CLOSE_WRITE", "IN_CLOSE_NOWRITE", "IN_OPEN", "IN_MOVED_FROM", //文件移动from "IN_MOVED_TO", //文件移动to "IN_CREATE", //文件创建 "IN_DELETE", //文件删除 "IN_DELETE

Linux 监控文件事件

你说的曾经没有我的故事 提交于 2020-04-10 13:33:19
某些应用程序需要对文件或者目录进行监控,来侦测其是否发生了某些事件。Linux很贴心的为我们提供了inotify API,也是Linux的专有。 inotify API 在使用之前一定要有一个inotify实例,int inotify_init(void);返回一个inotify实例的描述符。 添加监控描述符,int inotify_add_watch(int fd,const char *pathname,unit32_t mask);参数解释:fd就是init返回的描述符,pathname就是你要监控的文件或者目录的路径名,mask这个是用来表示你要监控的事件类型。 删除监控描述符,int inotify_rm_watch(int fd,uint32_t wd);参数解释:fd还是你要操作的描述符,wd是你要删除监控描述符号。 inotify事件 inotify事件实现原理 原理肯定需要数据结构来支撑了,先来一个inotify的通知事件数据结构: struct inotify_event{ int wd;监控描述符 uint32_t mask;发生的事件 uint32_t cookie;这个专为文件重命名而生,源文件所在监控会产生一个IN_MOVED_FROM事件,重命名后文件所在监控会产生一个IN_MOVED_TO事件(如果在同一个监控下重命名,会对这个监控项产生这两个事件)

rsync+inotify实时同步环境部署

。_饼干妹妹 提交于 2020-04-06 00:13:10
rsync 作用: 实现文件的备份 备份位置可以是当前主机,也可以是远程主机 备份过程可以是完全备份,也可以是增量备份 功能: 1、类似于cp的复制功能 将本地主机的一个文件复制到另一个位置下。 2、将本地主机的文件推送到远程主机,也可以从远程主机拉取文件到本地。 3、显示文件列表 使用模式 shell模式 本地复制功能 远程shell模式 可以利用ssh来实现数据的加密到远程主机 守护进程(服务器模式) rsync工作在守护进程模式下 列表模式 ls 仅仅显示内容,不做操作 确保各个主机的时间同步 [root@ntp ~]# crontab -l * * * * * /usr/sbin/ntpdate -u ntp1.aliyun.com &>/dev/null * * * * * /usr/sbin/hwclock -w &>/dev/null [root@samba ~]# crontab -l * * * * * /usr/sbin/ntpdate -u 192.168.85.132 & > /dev/null [root@backup ~]# crontab -l * * * * * /usr/sbin/ntpdate -u 192.168.85.132 & > /dev/null rsync+inotify rsync+sersync rsync只负责传递文件到远程主机

linux运维、架构之路-实时同步方案

两盒软妹~` 提交于 2020-03-29 22:48:05
一、inotify+rsync实时同步 1、介绍 inotify-tools是一种强大的、细粒度的、异步的文件系统事件监控机制,可以用来监控文件系统的事件。inotify-tools是用c编写的,除了要求内核支持inotify外,不依赖于其他。inotify-tools提供两种工具,一是inotifywait,它是用来监控文件或目录的变化,二是inotifywatch,它是用来统计文件系统访问的次数。 2、实现原理 3、根据原理进行部署 ①查看系统是否支持inotify [root@nfs-nfs01 ~]# ll /proc/sys/fs/inotify/ -rw-r--r-- 1 root root 0 Aug 22 18:13 max_queued_events -rw-r--r-- 1 root root 0 Aug 28 14:30 max_user_instances -rw-r--r-- 1 root root 0 Aug 22 18:13 max_user_watches ②软件安装 wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo #安装epel源才可以yum安装inotify yum install -y inotify-tools ③