发布网友 发布时间:2022-04-23 09:55
共4个回答
热心网友 时间:2023-11-01 10:11
我来个简单的吧
比如你要监控 1.txt 2.txt 。。。。。n.txt这些
你这样
tail -f 1.txt 2.txt 3.txt .......n.txt
然后就等着吧,每个文件有变化都自动打印出来了,而且不用sleep
简单吧,绝对完全符合你的要求
看我的测试结果
tail -f 1.txt 2.txt
==> 1.txt <==
abcd
==> 2.txt <==
abcd
==> 1.txt <==
add one line
==> 2.txt <==
add another line
热心网友 时间:2023-11-01 10:12
用shell脚本的while循环吧(这里仅以一个文本文件testfile.txt为例子):
#!/bin/sh
init_filesize=`wc -m testfile.txt | cut -d' ' -f1`
cp testfile.txt testfile.txt.orig #拷贝一个原文件的副本用于后续比较以输出差异部分
while true
do
filesize=`wc -m testfile.txt | cut -d' ' -f1`
# 若文件大小有增长,使用diff输出不一致的内容:
if [ $filesize -gt $init_filesize ]; then
diff testfile.txt testfile.txt.orig
cp testfile.txt testfile.txt.orig # 更新用于比较的文件副本
init_filesize=$filesize # 重置用于比较的基准文件大小
fi
sleep 1
done
exit 0
热心网友 时间:2023-11-01 10:12
如果用C调inotify,实时检查文件的变化。
我觉得LINUX都是遵守共同标准的,需要用到的命令肯定都带有,不需要考虑兼容的问题。
热心网友 时间:2023-11-01 10:13
是不是可以通过比较文件的mtime时间来实现?