inotify

How to watch and and monitor ftp mounted point for new created files using Python

白昼怎懂夜的黑 提交于 2021-02-16 15:23:28
问题 I am able to watch local directories using inotify kernel subsystem based solutions. There are some python projects too which are working on top of inotify like pyinotify, PyInotify, fsmonitor and watchdog. I have mounted remote ftp server in local directory using curlftpfs so all syncing is easy now. But inotify is not able to watch network mounted points like local directories. I want to track if there is new files added to ftp server. How can I achieve like I do for local directory using

Why is inotify losing events?

孤街浪徒 提交于 2021-02-08 21:19:21
问题 I need to process large (~100s) of syslog messages using Perl and Linux::Inotify2. I wrote a test script which generates log messages continuously. To process events, my Perl script looks like this- #!/usr/bin/perl use Linux::Inotify2 ; use Time::HiRes qw(usleep nanosleep); # create a new object my $inotify = new Linux::Inotify2 or die "Unable to create new inotify object: $!" ; # create watch $inotify->watch ("/var/log/messages", IN_ACCESS|IN_OPEN|IN_CLOSE|IN_MODIFY|IN_Q_OVERFLOW) or die

Change inotify.max_user_instances limit in Docker container

生来就可爱ヽ(ⅴ<●) 提交于 2021-02-07 02:53:30
问题 I am trying to change inotify.max_user_instances setting for docker env on the level of Dockerfile. I am trying to do it because I am receiving this error: Application startup exception: System.IO.IOException: The configured user limit (128) on the number of inotify instances has been reached. I already use: .AddJsonFile($"appsettings.json", optional: true, reloadOnChange: false); I as well tried to use custom "WebHost.CreateDefaultBuilder(args)", because it was pointed out that it uses

如何设计日志采集系统?不妨看看这篇文章

走远了吗. 提交于 2021-01-02 15:22:32
点击上方蓝色“ 方志朋 ”,选择“设为星标” 回复“ 666 ”获取独家整理的学习资料! 来源:r6d.cn/9K3Q 概述 日志从最初面向人类演变到现在的面向机器发生了巨大的变化。最初的日志主要的消费者是软件工程师,他们通过读取日志来排查问题,如今,大量机器日夜处理日志数据以生成可读性的报告以此来帮助人类做出决策。在这个转变的过程中,日志采集Agent在其中扮演着重要的角色。 作为一个日志采集的Agent简单来看其实就是一个将数据从源端投递到目的端的程序,通常目的端是一个具备数据订阅功能的集中存储,这么做的目的其实是为了将日志分析和日志存储解耦,同一份日志可能会有不同的消费者感兴趣,获取到日志后所处理的方式也会有所不同,通过将数据存储和数据分析进行解耦后,不同的消费者可以订阅自己感兴趣的日志,选择对应的分析工具进行分析。像这样的具备数据订阅功能的集中存储业界比较流行的是Kafka,对应到阿里巴巴内部就是DataHub还有阿里云的LogHub。而数据源端大致可以分为三类,一类就是普通的文本文件,另外一类则是通过网络接收到的日志数据,最后一类则是通过共享内存的方式,本文只会谈及第一类。一个日志采集Agent最为核心的功能大致就是这个样子了。在这个基础上进一步又可以引入日志过滤、日志格式化、路由等功能,看起来就好像是一个生产车间。从日志投递的方式来看,日志采集又可以分为推模式和拉模式

Listen error 错误和 limit of inotify watches was reached

为君一笑 提交于 2020-12-13 10:58:11
今天在生产环境中报错rails c中报了一个错误: FATAL: Listen error: unable to monitor directories for changes. Visit https://github.com/guard/listen/wiki/Increasing-the-amount-of-inotify-watchers for info on how to fix this.   报错后想看一下错误日志显示如下: tailf: log/xxxxxx.log: cannot add inotify watch (limit of inotify watches was reached).   其实这个错误直接访问提示网站告诉的挺详细的。 解决方案: If you are running Debian, RedHat, or another similar Linux distribution, run the following in a terminal: echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p If you are running ArchLinux, run the following command

实现Linux tail -f功能

我与影子孤独终老i 提交于 2020-12-08 02:15:49
循环 这个比较好像,不停的去读文件,读到就打印出来 f = open( 'a' , 'r' ) print(f.read(),end= '' ) while True : try : print(f.read(),end= '' ) except KeyboardInterrupt: f.close() break CPU占用100%,不是一个好的选择。 select、poll 一直以来,对select和poll的用法局限于套接字,实际上,只要是文件描述符,都可以监控。 select import select f = open( 'a' , 'r' ) while True : try : rs, ws, es = select.select([f, ], [], []) for i in rs: buf = i.read() print(buf, end= '' ) except KeyboardInterrupt: f.close() break poll import select f = open( 'a' , 'r' ) poller = select.poll() fd_to_file = {} poller.register(f,select.POLLIN) while True : try : events = poller.poll() for fd,flag

Linux三阶段之四:实时同步(inotify+rsync,sersync+rsync)

情到浓时终转凉″ 提交于 2020-11-25 07:50:35
四、实时同步 (一)课程概念介绍 为什么要用实时同步服务 因为定时任务有缺陷,一分钟以内的数据无法进行同步,容易造成数据丢失 实时同步工作原理 a .创建要存储数据的目录 b .利用实时同步的软件监控我们进行备份的数据目录 c .利用rsync服务进行数据推送传输备份 (二)实时同步服务软件部署 1.inotify+rsync实现实时同步备份 第一个里程:将inotify软件安装成功 yum install -y inotify-tools 说明:操作系统的yum源文件中,是否存在epel源 wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo [root@nfs01 ~]# rpm -ql inotify-tools /usr/bin/inotifywait <--- 实现对数据目录信息变化监控(重点了解的命令) /usr/bin/inotifywatch <--- 监控数据信息变化,对变化的数据进行统计 [root@nfs01 ~]# cd /proc/sys/fs/inotify/ [root@nfs01 inotify]# ll 总用量 0 -rw-r--r-- 1 root root 0 2018-02-25 19:45 max_queued_events -rw-r-

sudo+syslog日志审计+登陆用户操作统计

梦想的初衷 提交于 2020-11-19 23:54:18
1、查询系统是否已安装sudo、syslog程序 [ root@shangke ~ ] # rpm -qa|egrep "sudo|syslog" rsyslog-5.8.10-10.el6_6.x86_64 sudo-1.8.6p3-19.el6.x86_64 如果没有安装,则用yum安装,yum install -y sudo syslog 2、配置/etc/sudoers 增加配置“Defaults logfile=/var/log/sudo.log”到/etc/sudoers中 [ root@shangke ~ ] # echo "Defaults logfile=/var/log/sudo.log" >>/etc/sudoers [ root@shangke ~ ] # tail -1 /etc/sudoers ##检查操作是否成功 Defaults logfile = /var/log/sudo.log [ root@shangke ~ ] # visudo -c ##检查sudoers文件语法 /etc/sudoers: parsed OK 3、配置系统日志 增加配置local2.debug到/etc/syslog.conf中(Centos5.8中) 增加配置local2.debug到/etc/rsyslog.conf中(Centos6.4中) [ root

六面防护:教你如何打造一套深度防御体系

落花浮王杯 提交于 2020-11-13 09:52:11
作者简介 朱林 资深开发人员,《Elasticsearch技术解析与实战》作者。有16年开发经验,11年安全产品开发经验,对安全技术、日志分析有较深的研究。于2013年创立南京赛克蓝德网络科技有限公司,公司专注于安全产品的开发,目前主要开发的产品是赛克蓝德日志分析软件。 导读 由于篇幅所限,遂将此文分为上下两篇,上篇侧重讲原理,下篇会结合原理讲述若干实际案例。 概述 从 Google 的 BeyondCorp 计划说起。 Google 的这项行动计划名为 BeyondCorp ,目的是为了彻底打破内外网之别。其基本假设是——内部网络实际上跟互联网一样危险,原因有两点: 一旦内网边界被突破,***者就很容易访问到企业内部应用。 现在的企业越来越多采用移动和云技术,边界保护变得越来越难。所以干脆一视同仁,不外区分内外网,用一致的手段去对待。 本文不深入阐述 Google 的这个方案是如何做的,从这个案例只想说明一个问题,随着信息安全漏洞层出不穷,而且利用手法也日益精妙,内部网络也会面临极大的风险(除非是完全物理隔离的内网)。所以需要同时关注内部网络和边界网络的安全。 一、原理篇 有段时间经常看中央一套的《今日说法》,其中有一个案件寻找破案线索的过程令我印象非常深刻。当时大概的案情是在一段没有监控的路上,有个女的被绑架了,这个时候寻找绑架作案的车辆就非常重要。 由于事发路段没有监控

inotify+rsync 实时同步

痴心易碎 提交于 2020-11-08 09:25:40
服务器A 192.168.28.1 服务器B 192.168.28.2 把A服务器的/www/的数据备份到B服务器的/www/上 A,B服务器都要安装rsync 一般系统会默认安装了 [root@web1~]# rpm -q rsync rsync-2.6.8-3.1 在rsync-daemon认证方式下,默认监听毒tcp的873端口 在rsync-daemon认证下,rsync可以把密码写入到一个文件中。 注意:被同步端(B服务器)的rsync必须启动,配置文件。同步端(A服务器)可以不起动服务,但必须有这个应用。 B服务器上操作,手动生动配置文件和密码文件 新建配置文件: [root@cbd88 ~]# vi /etc/rsyncd.conf #Rsync server #created by yty 21:12 2015-05-23 ##rsyncd.conf start## uid = root gid = root use chroot = no max connections = 2000 timeout = 600 pid file = /var/run/rsyncd.pid lock file = /var/run/rsync.lock log file = /var/log/rsyncd.log ignore errors read only = false