poi的No such file or directory异常分析
2017-02-03 22:45
295 查看
在鸡年里,我像勤劳的老公鸡早早的来到了公司。本打算这两天工作时间正好打发下假期综合征,但系统偏不遂人愿。一阵急促的电话声将我的思绪从九霄云外拉到了寒冷刺骨的凡间。业务人员在电话那头催促说"文件不能导出,赶紧看看”。
我们的理念是 “ 一切为业务服务,为了业务的一切”,业务有难,八方支援。赶紧下机房,拉出日志检查问题。日志里面好几条“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加入到排除目录即可。
我们的理念是 “ 一切为业务服务,为了业务的一切”,业务有难,八方支援。赶紧下机房,拉出日志检查问题。日志里面好几条“No such file or directory”异常,都是使用poi的SXXFWorkbook生成excel文件时抛出的。根据异常信息,定位到了TempFile这个类里。
if (this.dir == null) { this.dir = new File(System.getProperty("java.io.tmpdir"), "poifiles"); this.dir.mkdir(); if (System.getProperty("poi.keep.tmp.files") == null) { this.dir.deleteOnExit(); } } File newFile = File.createTempFile(prefix, suffix, this.dir);
从异常信息来看应该是this.dir文件目录不存在导致,立马到/tmp目录下查证,果然poifiles子目录已经消失了。这可奇怪了,这个目录怎么会平白无故消失了,SXXFWorkbook在很多项目用了很多年都没有问题,怎么这次就莫名其妙的消失了。用histroy命令没有发现当前用户有删除操作和list reboot看看最近有没有重启(PS服务器是运行中心搭建的,我们只能只用一个只有很小权限的用户进行上线),搜索下代码也没有发现有主动的delete。真是奇了!!!
只能想想/tmp目录是否有自动清理机制,但要是有自动清理机制,其他的项目早就出问题了。但也只能死马当活马医,查看了下/etc/cron.daily/tmpwatch
flags=-umc /usr/sbin/tmpwatch "$flags" -x /tmp/.X11-unix -x /tmp/.XIM-unix \ -x /tmp/.font-unix -x /tmp/.ICE-unix -x /tmp/.Test-unix \ -X '/tmp/hsperfdata_*' 10d /tmp /usr/sbin/tmpwatch "$flags" 30d /var/tmp for d in /var/{cache/man,catman}/{cat?,X11R6/cat?,local/cat?}; do if [ -d "$d" ]; then /usr/sbin/tmpwatch "$flags" -f 30d "$d" fi done
果然/tmp目录下的应用产生的文件和目录10天没有修改就会被删除,而我们的这个系统和之前系统的一个最大差别正是使用频次。出问题的系统只在每个月的前5个工作日有业务人员使用,这样自然导致poi生成的poifiles目录在下一次使用之前就会被删除掉。
问题原因已经找到了,接下来只好拜托运行中心的兄弟们帮忙将poifiles加入到排除目录即可。
相关文章推荐
- 脚本执行异常(bad interpreter: No such file or directory)的解决方法
- Java执行Shell脚本“No such file or directory”异常的可能原因
- sh脚本异常:/bin/sh^M:bad interpreter: No such file or directory
- sh脚本异常:/bin/sh^M:bad interpreter: No such file or directory
- sh脚本异常:/bin/sh^M:bad interpreter: No such file or directory
- 【转】sh脚本异常:bad interpreter: No such file or directory
- sh脚本异常:/bin/sh^M:bad interpreter: No such file or directory
- sh脚本异常:/bin/sh^M:bad interpreter: No such file or directory
- sh脚本异常:/bin/sh^M:bad interpreter: No such file or directory
- Linux sh脚本异常:bad interpreter: No such file or directory
- sh脚本异常:bad interpreter: No such file or directory
- ./bin/sh^M: bad interpreter: No such file or directory 异常
- sh脚本异常:bad interpreter: No such file or directory
- sh脚本异常:/bin/sh^M:bad interpreter: No such file or directory
- sh脚本异常:/bin/sh^M:bad interpreter: No such file or directory
- sh脚本异常:bad interpreter: No such file or directory
- sh脚本异常:bad interpreter: No such file or directory
- Java执行Shell脚本“No such file or directory”异常的可能原因
- /bin/sh^M: bad interpreter: No such file or directory 异常
- shell脚本异常:/bin/sh^M:bad interpreter: No such file or directory