Android技术知识Android开发Android开发

Linux磁盘空间占满问题快速排雷

2019-02-14  本文已影响120人  cff70524f5cf

情人节一大早就接到报警,一台测试服务器磁盘满了,这很程序员。

磁盘排雷三连

反手一个 df 先看是否是真满了(参考 df(1) - Linux man page )

需要注意,如果磁盘空间未满,但是仍然报 No space left on device ,需要执行 df -i 排查inode

通过 df -h 只能看出磁盘满了,但是看不出每个文件夹的大小,所以需要使用 du -ahd1 ,如果文件不是很多,很大,一般速度还能接受,但是今天执行相当慢,所以 Ctrl+C 中止。

此处简单说明一下 -ahd1 的意思(可以通过 man du 或者 du --help 自行查阅帮助文档,参考 du(1) - Linux man page)

如果被删除的文件 df -h 快满了,而 du -ahd1 却很小,往往是文件被删除,而文件句柄没释放导致的,祭出 lsof | grep deleted ,解决办法,要么kill掉pid,释放句柄(治本),要么就 > /path/to/deleted/file 把内容覆盖掉(治标)。当然还有别的玩法,比如,不小心 rm -rf / 了,先别着急跑路,万一 lsof | grep deleted 还存在的,都还有救,约等于windows下的回收站的作用。 参考 lsof(8) - Linux man page

ncdu

针对 du -d1 大文件场景下的龟速表现,有人开发了ncdu,以ubuntu为例

参考官方文档 Ncdu Manual

额外

通过man查询命令时,手册中会带有数字(例如 du(1) , lsof(8) ),这代表的是手册的不同部分,可以通过 man man 或者 Linux man pages 来查看

参考资料

NDK模块开发

NDK基础开发流程

需要这些资料的大伙关注+点赞+加群:185873940 免费获取!

群内还有许多免费的关于高阶安卓学习资料,包括高级UI、性能优化、架构师课程、 NDK、混合式开发:ReactNative+Weex等多个Android技术知识的架构视频资料,还有职业生涯规划及面试指导。

上一篇下一篇

猜你喜欢

热点阅读