在鸡年里,我像勤劳的老公鸡早早的来到了公司。本打算这两天工作时间正好打发下假期综合征,但系统偏不遂人愿。一阵急促的电话声将我的思绪从九霄云外拉到了寒冷刺骨的凡间。业务人员在电话那头催促说"文件不能导出,赶紧看看”。 我们的理念是 “ 一切为业务服务,为了业务的一切”,业务有难,八方支援。赶紧下机房,拉出日志检查问题。日志里面好几条“No such file or directory”异常,都是使用poi的SXXFWorkbook生成Excel文件时抛出的。根据异常信息,定位到了TempFile这个类里。
从异常信息来看应该是this.dir文件目录不存在导致,立马到/tmp目录下查证,果然poifiles子目录已经消失了。这可奇怪了,这个目录怎么会平白无故消失了,SXXFWorkbook在很多项目用了很多年都没有问题,怎么这次就莫名其妙的消失了。用histroy命令没有发现当前用户有删除操作和list reboot看看最近有没有重启(PS服务器是运行中心搭建的,我们只能只用一个只有很小权限的用户进行上线),搜索下代码也没有发现有主动的delete。真是奇了!!! 只能想想/tmp目录是否有自动清理机制,但要是有自动清理机制,其他的项目早就出问题了。但也只能死马当活马医,查看了下/etc/cron.daily/tmpwatch
果然/tmp目录下的应用产生的文件和目录10天没有修改就会被删除,而我们的这个系统和之前系统的一个最大差别正是使用频次。出问题的系统只在每个月的前5个工作日有业务人员使用,这样自然导致poi生成的poifiles目录在下一次使用之前就会被删除掉。 问题原因已经找到了,接下来只好拜托运行中心的兄弟们帮忙将poifiles加入到排除目录即可。新闻热点
疑难解答