mtail日志文件占用

Viewed 84

应用程序本身在23:59的时候会重命名当天的日志文件名称,这时候应用程序报错文件被占用,原因是categraf的mtail插件还在占用该日志文件,所以应用程序无法重命名;
问题:
1.mtail会占用日志文件,导致应用程序无法重命名日志文件吗
2.如果是mtail占用了日志文件,有什么方式可以避免在23:59的时候不要去扫日志呢

表现形式(发生在windows机器):
1.mtail.toml

[[instances]]
progs = "E:/N9E/prog"
logs = ["E:/N9E/categraf-v0.2.29-windows-amd64/categraf.log"]

2.prog目录中的mtail规则如下

counter input_total 

/.*input.*/ {
	input_total ++
}

3.当文件被tail的时候尝试去重命名,这时候的系统提示截图如下
文件占用截图

问题跟进:
1.使用rename-item重命名文件结果
image.png
2.使用handle查看文件占用结果
image.png

1 Answers

1.lsof $file 判断file被谁占用
2.如果系统mv不会因为占用而不能重命名
3.贴一下mtail的配置

感谢回答,非常抱歉我在提问时忽略了备注系统环境;文件占用的问题是在Windows的环境下发生的;

用命令行试试呢, ren "旧文件名.txt" "新文件名.txt"

查找占用文件句柄的进程:handle E:/N9E/categraf-v0.2.29-windows-amd64/categraf.log