首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在终端中监控文件并打印出更改(使用inotify)?

在终端中监控文件并打印出更改可以使用inotify工具。inotify是Linux内核提供的一种文件系统事件通知机制,可以监控文件或目录的变化,并在事件发生时通知相应的应用程序。

使用inotify进行文件监控的步骤如下:

  1. 导入inotify相关的头文件:
代码语言:txt
复制
#include <sys/inotify.h>
  1. 创建inotify实例:
代码语言:txt
复制
int fd = inotify_init();
if (fd == -1) {
    perror("inotify_init");
    exit(EXIT_FAILURE);
}
  1. 添加监控:
代码语言:txt
复制
int wd = inotify_add_watch(fd, "/path/to/file", IN_MODIFY);
if (wd == -1) {
    perror("inotify_add_watch");
    exit(EXIT_FAILURE);
}

其中,/path/to/file是要监控的文件路径,IN_MODIFY表示监控文件的修改事件。

  1. 读取事件:
代码语言:txt
复制
char buf[4096] __attribute__ ((aligned(__alignof__(struct inotify_event))));
ssize_t len = read(fd, buf, sizeof(buf));
if (len == -1) {
    perror("read");
    exit(EXIT_FAILURE);
}

struct inotify_event *event;
for (char *ptr = buf; ptr < buf + len; ptr += sizeof(struct inotify_event) + event->len) {
    event = (struct inotify_event *)ptr;
    if (event->mask & IN_MODIFY) {
        printf("File modified: %s\n", event->name);
    }
}

通过调用read函数读取inotify实例的事件,然后遍历事件列表,判断事件类型,这里使用IN_MODIFY来判断文件是否被修改。

在腾讯云中,可以使用云服务器来运行这样的监控程序。腾讯云的云服务器提供了稳定可靠的计算资源,可以满足各种应用场景的需求。您可以通过腾讯云控制台或API创建和管理云服务器实例。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Pyinotify – Linux中实时监控文件系统更改

Pyinotify 是一个简单而实用的 Python 模块,它用于通过 inotify 实时监控Linux文件系统的更改。用于在Linux中实时监控文件系统的变化。...作为系统管理员,您可以使用它来监视目标感兴趣的更改,如Web目录或应用程序数据存储目录及其他目录。...在本文中,我们将向您展示如何在Linux中安装和使用pyinotify来实时监控文件系统更改或修改。...在大多数Linux发行版中,如果您使用从python.org下载的Python 2> = 2.7.9或Python 3> = 3.4二进制文件, Pip已经安装,否则安装如下: # apt-get install...Linux中使用pyinotify 在下面的示例中,我以root用户(通过ssh登录)监视用户 jchen 的home( / home/jchen )目录的任何更改,如屏幕截图所示: # python

3.3K20

配置 inotify+rsync 实时同步

Linux内核提供了inotify通知接口,用来监控文件系统的各种变化情况,如文件存取、删除、移动、修改等。...利用这个机制,可以非常方便地实现文件异动告警、增量备份,并针对目录或文件的变化及时作出响应。...8192 #每个实例最多监控文件数 当要监控的目录、文件数量较多或者变化比较频繁时,建议通过修改“ /etc/sysctl.conf ”加大这三个参数(标准是1024...; -q:简化输出信息; modify:修改; create:创建; move:移动; delete:删除; attrib:属性更改; 现在切换一个终端,在监控的目录下新建一个1.html文件,则该终端的监控命令下就会提示相关信息...切换到本机的/var/www/html/目录,执行增加、删除、修改文件等操作。 查看server A服务器中/var/www/html/目录下的变化情况。

1.1K30
  • 使用 inotify 和 rsync 实现文件实时同步

    异步的文件系统事件监控机制,linux内核从2.6.13起,加入了 Inotify支持,通过Inotify可以监控文件系统中添加、删除,修改、移动等各种事件。...利用这个内核接口,第三方软件就可以监控文件系统下文件的各种变化情况,而 inotify-tools 正是实施这样监控的软件。...inotifywatch 收集被监控的文件系统使用的统计数据,指文件系统事件发生的次数统计。 在实时同步的时候,主要是利用 inotifywait 对目录进行监控。...1.3 inotifywait 的常用参数-m 是要持续监视变化-r 使用递归形式监视目录-q 减少冗余信息,只打印出需要的信息-e 指定要监视的事件列表--timefmt 是指定时间的输出格式--format...move 文件或目录不管移动到或是移出监控目录都触发事件create 文件或目录创建在监控目录中delete 文件或目录被删除在监控目录中1.4 inotifywait 使用比如监听 文件的创建# 一个终端开始监听

    1.8K30

    rsync自动同步_文件实时同步

    (backuper) 4.4 在另一个终端编写触发式同步脚本(backuper) 4.5 验证 六、使用 rsync 实现快速删除大量文件 1....发起端配置 rsync + inotify   使用 inotiify 通知接口,可以用来监控文件系统的各种变化情况,如文件存取、删除、移动、修改等。...因为 inotify 通知机制由 Linux 内核提供,因此主要做本机监控,在触发式备份中应用时更适合上行同步。...inotifywait:可监控modify(修改)、create(创建)、move(移动)、delete(删除)、attrib(属性更改)等各种事件,一旦变动立即输出结果。...,并保持所有文件属性 -H:保持硬链接文件 -v:详细输出模式 --progress:在传输室显示传输过程 --stats:给出某些文件的传输状态 ---- 参考 rsync + inotify https

    4.4K31

    Linux安全:轻松扫描服务器中的Rootkit

    Rootkit 通常包括其他功能,例如网络活动监控、进程控制和数据加密。 现在你已经对 rootkit 有了基本的了解,让我们找出如何在 Linux 上扫描它们。...例如,在我的 Ubuntu Server 24.04 实例上,有超过 62000 个文件需要扫描。 另一个不错的功能是能够监控目录更改。...例如,您可以像这样监控 /etc 目录: sudo maldet --monitor /etc 需要注意的是,如果您使用监控选项,则还需要使用以下命令安装 inotify-tools: sudo apt-get...install inotify-tools -y 监控选项运行后,您可以在 /usr/local/maldetect/logs/inotify_log 中找到日志。...请定期阅读该文件以查看 /etc 中是否有任何更改。该日志文件实时更新,因此只要有任何更改,它就会被写入文件。

    7310

    19 张图详解 Rsync 远程同步

    在 rsync 命令中,如果使用单个冒号(:),则默认使用 ssh 协议;反之,如果使用两个冒号(::),则使用 rsync 协议。...机制 从版本 2.6.13 开始提供 可以监控文件系统的变动情况,并做出通知响应 辅助软件:inotify-tools 4.4 发起端配置 rsync+Inotify 使用 inotify 通知接口,...可以用来监控文件系统的各种变化情况,如文件存取、删除、移动、修改等。...因为 inotify 通知机制由 Linux 内核提供,因此主要做本机监控,在触发式备份中应用时更适合上行同步。...inotifywait:可监控 modify (修改)、create (创建)、move (移动)、delete (删除)、attrib ( 属性更改)等各种事件,一有变动立即输出结果。

    3.7K20

    【实战技巧】使用inotify实现实时文件监控

    【实战技巧】使用inotify实现实时文件监控 开篇   之前阅读《Linux系统编程》时,留意到了一个Linux原生接口inotify。它能够监控文件的移动、读取、写入和删除等操作。...概述 inotify 是 Linux 内核提供的一种文件系统事件监控机制,允许用户空间程序监视文件或目录的各种操作。  ...inotify 提供了一种高效的方式来构建实时文件同步、监控日志变更和自动化任务等应用,是现代 Linux 系统编程中不可或缺的一部分。...char *pathname, uint32_t mask) 功能 向指定的 inotify 实例中添加一个新的文件或目录的监视,并指定要监视的事件类型。...② 右边窗口先后执行创建和删除hello文件。 验证效果:   监听程序能够及时打印出对应创建和删除事件。 总结 从使用流程来看,inotify用起来比较简单,只需要初始化、添加事件和读取事件即可。

    16710

    文件监控-inotify安装与使用分享

    开篇:在Linux环境开发过程中,遇到需要监控某个目录的文件是否发生变化执行相应脚本,网上了解一下,inotify完美符合需求。...这些程序可以用于监视文件系统事件并执行相应操作,这些程序是用C语言来写的,除了需要Linux内核的inotify支持外,没有其他的依赖,使用方便。...inotify 在Linux内核 2.6.13 (June 18, 2005)版本中引入的一个新功能,它为用户态监视文件系统的变化提供了强大的支持,允许监控程序打开一个独立文件描述符,并针对事件集监控一个或者多个文件...三、inotify-tools 工具包中包含了两个命令: inotifywait ======>>>> inotifywait 仅执行阻塞,等待 inotify 事件,你可以使用它来监控任何一组文件和目录...在实际使用的过程中,可以使用-d --outfile 两个选项,在后台运行并且输出到某个文件,shell监控日志文件变更从而达到监控某目录下所有文件变更的目的。

    5.2K50

    配置rsync+inotify实现站点文件实时同步

    ,为了在周期性计划任务中不用输入密码交互式执行, 需要创建一个密码文件,保存用户的密码,如/etc/server.pass,在执行rsync同步时使用选项 --password-file=/etc/server.pass...实时同步 notify是一种强大的、细粒度的、异步的文件系统事件监控机制,Linux内核从2.6.13版本起,加入了对inotify的支持。...通过inotify可以监控文件系统中添加、删除、修改、移动等各种事件,利用这个内核接口,inotify-tools便可以监控文件系统下文件的各种变化情况了。...16384    //监控事件队列数 fs.inotify.max_user_instances = 1024    //最多监控实例数 fs.inotify.max_user_watches = 1048576...chmod +x /opt/ino.sh 4.4、源服务器端测试 执行脚本后,当前终端会变成实时监控界面,需要重新打开终端操作。

    86110

    基于rsync+inotify实现数据实时同步传输

    -e ssh: 使用ssh作为传输承载;-z: 压缩后传输;--progress: 显示进度条--stats: 显示如何执行压缩和传输 注意:rsync命令中,如果源路径是目录,且给复制路径时末尾有.../,则会复制目录中的内容,而非目录本身;如果末尾没有/,则会同步目录本身及目录中的所有文件;目标路径末尾是否有/无关紧要;如:rsync -r /var/log/ /tmp #复制/var/log目录下的所有文件...,而且rsync虽然可以通过crontab实现定期同步,但是也达不到实时同步的要求,要想解决这一弊端,就需要inotify了 数据实时同步实现 inotify相关介绍 可用于定义监控指定的目录下的所有文件...rsync.passwd $SRC scholar@$HOST::$DESTdone#inotifywait参数详解:#-m,表示始终保持事件监听状态#-r,表示递归查询目录#-q,表示打印出监控事件...,相应的主服务器inotify的脚本也需要略加修改,过程并不麻烦,实验过程中遇到问题可留言。

    1.5K40

    再说rsync+inotify实现数据的实时备份

    inotify介绍 Inotify 是一种强大的、细粒度的、异步的文件系统事件监控机制,linux内核从2.6.13起,加入了Inotify支持,通过Inotify可以监控文件系统中添加、删除,修改、移动等各种细微事件...,利用这个内核接口,第三方软件就可以监控文件系统下文件的各种变化情况,而inotify-tools就是这样的一个第三方软件。...inotifywatch用于收集被监控的文件系统统计数据,包括每个inotify事件发生多少次等信息。...Inotifywait是一个监控等待事件,可以配合shell脚本使用它,下面介绍一下常用的一些参数: •-m, 即–monitor,表示始终保持事件监听状态。...•-q, 即–quiet,表示打印出监控事件。 •-e, 即–event,通过此参数可以指定要监控的事件,常见的事件有modify、delete、create、attrib等。

    49740

    linux inotify-tools 安装

    安装完成后,会生成inotifywait和inotifywatch两个指令,其中,inotifywait用于等待文件或文件集上的一个特定事件,它可以监控任何文件和目录设置,并且可以递归地监控整个目录树。...inotifywatch用于收集被监控的文件系统统计数据,包括每个inotify事件发生多少次等信息。.../proc/sys/fs/inotify/max_queued_evnets 表示调用inotify_init时分配给inotify instance中可排队的event的数目的最大值,超出这个值的事件被丢弃...Inotifywait是一个监控等待事件,可以配合shell脚本使用它,下面介绍一下常用的一些参数:  -m, 即--monitor,表示始终保持事件监听状态。... -q, 即--quiet,表示打印出监控事件。  -e, 即--event,通过此参数可以指定要监控的事件,常见的事件有modify、delete、create、attrib等。

    2.7K40

    inotify-tools工具安装配置

    Inotify一种强大的、细粒度的、异步文件系统监控机制,它满足各种各样的文件监控需要,可以监控文件系统的访问属性、读写属性、权限属性、删除创建、移动等操作,也就是可以监控文件发生的一切变化。。...,Linux发行版一般没有包括这个命令,需要安装inotify-tools,这个命令还需要将inotify支持编译入Linux内核,好在大多数Linux发行版都在内核中启用了inotify。...inotifywatch命令用于收集关于被监视的文件系统的统计数据,包括每个 inotify 事件发生多少次 inotifywait命令参数: -m是要持续监视变化。 -r使用递归形式监视目录。...-q减少冗余信息,只打印出需要的信息。 -e指定要监视的事件列表。 --timefmt是指定时间的输出格式。...close关闭,对文件进行关闭操作 delete删除,文件被删除 四、使用示例 监听/tmp目录内所有文件和目录的"增删改"操作/usr/bin/inotifywait -mrq -e 'create

    1.1K10

    CentOS下(rsync+inotify)监听式实现服务器间的备份实时同步

    内核从 2.6.13 起,加入了 inotify 支持,通过 inotify 可以监控文件系统中添加、删除、修改、移动等各种事件,利用这个内核接口,第三方软件就可以监控文件系统下文件的各种变化情况,而...,对应的,备份服务器通过监控也会及时的进行同步更新,多台备份服务器 三、配置操作 在此提醒一下,本人在测试过程中,使用的是 root 账户,当然,如果使用的是其他账户,只要保证有足够的权限也可,谢谢 …...创建 rsync 复制脚本 此项功能主要是将 client 端的目录 /server/ftpInotify/ 里的内容,如果修改了(无论是添加、修改、删除文件)能够通过 inotify 监控到,并通过...RE文件,并进行了保存,此时,其所在的终端会自动打印如下信息: ?...Linux中使用rsync——文件和目录排除列表 (2).

    2.3K10

    inotify+rsync数据的实时同步

    监控软件inotify介绍 inotify可以监控同步数据服务器目录中信息的变化,采用异步的文件系统事件监控机制,利用事件驱动机制,而无须通过诸如cron等的轮询机制来获取事件,linux内核从2.6.13...起支持 inotify,通过inotify可以监控文件系统中添加、删除,修改、移动等各种事件。...可以通过以下命令查看在内核文件中该模块: # grep -i inotify /boot/config-3.10.0-1062.9.1.el7.x86_64 CONFIG_INOTIFY_USER=y...文件系统取消挂载 常用组合 持续后台监控,并记录日志 inotifywait -mrq /data/www -o /root/inotify.log --timefmt “%Y-%m-%d %H:...H:%M" --format "%T %w%f event: %;e" -e create,delete,moved_to,close_write,attrib inotifywatch命令: 收集被监控的文件系统使用的统计数据

    49520

    文件同步rsync

    --port= --delete删除源文件中没有的数据 --password-file=FILE 从file中得到密码 --bwlimit=KBPS 限制 --filter '' 需要过滤的文件...监控文件的变化 rsync + inotify linux内核从2.6.13版本开始开始提供inotify通知接口,用来监控文件系统的各种变化情况,如文件存取,删除,移动等。...利用这一机制,可以非常方便的实现文件异动告警,增量备份,并针对目录或文件的变化及时作出响应。...delete删除,motify修 改文件内容,attrib属性更改。 -m 表示持续监控 -r 表示递归整个目录 -q 表示简化输出信息。...inotifywait -mrq -e create,move,delete,motify /var/www inotify -rmq 文件目录 使用inotify输出监控结果中,每行记录中依次包括目录

    3.8K90

    rsync+inotify实现分布式集群部署

    上一篇:Linux下使用ssh密钥实现无交互备份 上二篇:Linux下使用rsync实现文件备份 缘起 由于公司要对支付做压测,于是使用了公司的服务器搭建了一个简单的集群环境,但是各个节点分别部署确实有点麻烦...如果监控的文件数目巨大,需要根据情况,适当增加此值的大小。...例如: echo 30000000 > /proc/sys/fs/inotify/max_user_watches 2)下载inotify源码包并编译安装 inotify是一种强大的、细粒度的、异步的文件系统事件控制机制...linux内核从2.6.13起,加入了inotify支持,通过inotify可以监控文件系统中添加、删除、修改、移动等各种事件,利用这个内核接口,第三方软件就可以监控文件系统下文件的各种变化情况,而inotify-tools...& #后台运行,你关掉终端也会继续运行 6)测试 主节点创建一个文件 touch test.html 查看各个自己节点是否有更新。

    1.4K50
    领券