做日志分析,需要动态追踪日志文件,结果发现用randomaccessfile一直无法动态追踪到后续的文件内容,一直担心自己的代码出现了问题,发现逻辑没有问题,然后又怀疑是不是randomaccessfile本身的坑,仔细查询了randomaccessfile的api文档和读了底层代码,发现也没有什么特殊的地方,又怀疑是否是read方法的问题 换成read(byte[] buf)还是一样,然后仔细想了一下,怀疑是我们使用rsync -azSH 参数导致的 因为我们没有使用 -u这个选项 可能会造成文件会删除再创建,虽然不知道是否会这样 但是我用了lsof 去看了一下 发现了一个很有意思的事情,
java 25789 jiagou 4r REG 202,1 423011 6685945 /xx/xx/xxx/Online/xxx.xxx.xx.xx/log/xxxx/xxxx/xxxx.log (deleted)
难怪我无法追踪到最新的文件了 回头加上u参数再试试