场景:我有个cron job每间隔三天,会将web数据压缩,然后上传到ftp server上,为了确认数据是否完全上传了,我会保留该tar.gz文件在一个分区里面!
查看备份时发现保留tar.gz文件的那个分区被撑满了,因为那个分区里面还有apache服务在运行,第一反应是删除该tar.gz文件,但删除该文件后,却发现空间没有释放,
空间占用率还是100%,我就试着删除其他的文件,释放点空间,以免空间真的被完全撑满,apache日志写入不了,从而导致网站不能访问!
原因:
备份变大原因:客户在webapp下压缩了一个pic.tar文件,该文件大概17G左右,我的脚本是压缩整个webapp目录,从而导致备份文件突然变大很多,撑满了备份文件所在的分区,
不释放空间的原因:ftp正在上传该文件即ftp进程正在占用该文件,
解决方法:kill 掉ftp进程即可,当时我还有点紧张,如果真不释放空间,就要重启vm,重启vm就有起不来的危险
,还好kill掉ftp进程,空间立刻就释放了
转载一个写的不错的文章;
如果你知道那个文件删除后,空间不释放,就可以通过lsof 查看该文件被那个进程占用,但如果不知道是哪个文件造成的,就可以通过lsof | grep deleted来查看是那个文件造成的,当然最笨的方法是重启机器!它也最有效,呵呵
关于空间的问题,还遇到一个奇怪的问题,
Db5的 /home分区去哪儿了?
Db5 为数据库的备份机,突然发现/home分区已经满了,于是逐个排查,也没有看到大的文件,同时lsof | grep –i delete 也没有发现被进程占用的删除的大文件,以前遇到过,进程在占用这个文件时,删除掉该文件,空间却不释放的问题,于是不得已,只好逐个重启服务,
我机器上就3个重要的服务!
/etc/init.d/mysqld restart
/etc/init.d/nginx restart
/etc/init.d/php-fpm restart
当重启到最后一个服务的时候,/home空间释放了!最笨的办法是重启机器!
在jdd公司,rock删除了rabbitmq的日志文件,也有这样的问题,空间被占用光了,一直查不到文件,重启该服务即可!
阅读(3798) | 评论(0) | 转发(0) |