网站首页 > 技术教程 正文
请关注本头条号,每天坚持更新原创干货技术文章。
如需学习视频,请在微信搜索公众号“智传网优”直接开始自助视频学习
1. 前言
本文主要讲解如何在Linux系统上使用watchman监控Linux文件或目录的变化。watchman是一个开源的、跨平台的文件监视服务,它可以监视文件变化,或者在它们发生更改时记录执行操作。它是由Facebook开发的,可以在Linux、OS X、FreeBSD和Solaris上运行。它在c/s模型中运行,并使用Linux内核的inotify实用程序来提供更强大的通知。
Watchman的有用概念
- 它递归地监视一个或多个目录树。
- 所监视的每个目录称为根目录。
- 它可以通过命令行配置,也可以通过JSON格式编写的配置文件配置。
- 它将更改记录到日志文件中。
- 支持订阅在根目录中发生的文件更改。
- 允许您查询根目录中自上次检查以来的文件更改或当前根目录树的状态。
- 它可以监视整个项目。
在本文中,我们将解释如何安装并使用watchman来监视文件并记录它们在Linux中的更改。我们还将简要演示如何监视目录并在目录更改时调用脚本。
2. 在Linux中安装`watchman`文件监视服务
我们将从源代码中安装watchman服务,因此首先在Linux发行版上使用以下命令安装这些必需的依赖项libssl-dev、autoconf、automake libtool、setuptools、python-devel和libfolly。
----------- 基于Debian/Ubuntu-----------
sudo apt install autoconf automake build-essential python-setuptools python-dev libssl-dev libtool
----------- 基于红帽RHEL/CentOS -----------
yum install autoconf automake python-setuptools python-devel openssl-devel libssl-devel libtool
yum groupinstall 'Development Tools'
----------- 基于红帽Fedora -----------
sudo dnf install autoconf automake python-setuptools openssl-devel libssl-devel libtool
sudo dnf groupinstall 'Development Tools'
一旦安装了所需的依赖项,就可以开始构建watchman了,方法是下载它的github存储库,复制到本地,使用以下命令配置、构建和安装watchman。
git clone https://github.com/facebook/watchman.git
cd watchman
git checkout v4.9.0
./autogen.sh
./configure
make
sudo make install
3. 在Linux中使用`watchman`监视文件和目录
watchman有两种配置方式:
- 1. 在后台运行守护进程时通过命令行配置
或者
- 2. 通过JSON格式编写的配置文件配置。
监视一个目录(例如~/bin)的更改状态,运行以下命令。
watchman watch ~/bin/
下面的命令在/usr/local/var/run/watchman/<username>-state/下写入一个名为state的配置文件(JSON格式)和一个名为log的日志文件(位于相同位置)。
可以使用cat命令查看这两个文件。
cat /usr/local/var/run/watchman/aaronkilik-state/state
cat /usr/local/var/run/watchman/aaronkilik-state/log
您还可以定义在监视目录进行更改时要触发的操作。例如,在下面的命令中,test-trigger是触发器的名称,而~bin/pav.sh是在监视的目录中检测到更改时将调用的脚本。
出于测试目的,pav.sh脚本简单地创建一个带有时间戳的文件(例如file.$time.txt)位于脚本的同一个目录中。内容如下:
time=`date +%Y-%m-%d.%H:%M:%S`
touch file.$time.txt
保存文件并使脚本具有可执行的权限。
chmod +x ~/bin/pav.sh
要启动触发器,请运行以下命令。
watchman -- trigger ~/bin 'test-trigger' -- ~/bin/pav.sh
当您执行watchman以监视某个目录时,将其添加到监视列表并查看它,运行以下命令。
watchman watch-list
要查看根目录的触发器列表,请运行以下命令:
watchman trigger-list ~/bin
请用根目录替代~/bin:
根据上面的配置,每次~/bin目录改变时,都会在创建一个文件,如file.2019-03-13.23:14:17.txt,您可以使用ls命令查看它们。
ls
4. 在Linux中卸载`watchman`服务
如果你想卸载watchman,切换到源目录并运行以下命令:
sudo make uninstall
cd '/usr/local/bin' && rm -f watchman
cd '/usr/local/share/doc/watchman-4.9.0 ' && rm -f README.markdown
5. 总结
watchman是一个开源的文件监视服务,它可以监视文件和目录,当然也可以用于监控日志文件的变化。如果你有更酷的用法或者工具,请在留言区推荐。
本文已同步至博客站,尊重原创,转载时请在正文中附带以下链接:https://www.linuxrumen.com/cyml/1700.html
点击了解更多,快速查看更多的技术文章列表。
猜你喜欢
- 2024-10-27 韩国警方决定将“N号房”网络性犯罪嫌犯赵主彬公开示众
- 2024-10-27 网站内容监控工具:Website Watchman for Mac
- 2024-10-27 美国劳伦斯利弗莫尔国家实验室领导一项新的防扩散研究
- 2024-10-27 使用watchman命令监控Linux系统文件的变化
- 2024-10-27 初代花美男沦为邋遢阶下囚?这部国产悬疑犯罪片尺度爆表
- 2024-10-27 韩媒起底“N号房”嫌犯“学霸”背景:成绩优秀,多次获奖学金
- 2024-10-27 N号房赵博士将被公开示众原因是什么?N号房案来龙去脉赵博士照片资料起底
- 2024-10-27 N号房的三大运营者之一"watchman"已被警方逮捕
- 2024-10-27 “N号房”赵博士身份公开:25岁从事信息通讯专业
- 2024-10-27 韩国N号房事件:少女被迫直播,26万人兴奋围观
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)