我的系统是 ubuntu。我想找出是什么占用了我的磁盘。事实上,我并不是想看看到底是什么占用了磁盘,而是想看看磁盘的哪些部分被占用了。写入和读取了哪些文件。
我正在构建家庭服务器,我不想让里面的磁盘一直旋转。不幸的是,我没有“从 USB 启动”选项,所以我无法将整个系统移到 USB。所以我想移动其中的一部分。最常用的部分。当然是 /var/log,但还有什么呢?
有没有工具可以告诉我磁盘上哪些目录/文件在过去 5 分钟内被使用过?知道哪些目录/文件在使用它们也很好。
答案1
此命令将显示过去 5 分钟访问(读取)的所有文件:
find / -amin -5
如果您想知道哪些文件被修改(写入),请使用-mmin
选项而不是-amin
。
答案2
iotop可以告诉你使用磁盘的进程,并且lsof可以告诉您这些进程打开了哪些文件。
但这并不是你想要的。要找出具体访问了哪些文件,你可以尝试使用系统水龙头;通过正确的配置,这将告诉你确切地你想要的。iotime.stp例子可能是一个很好的起点。
答案3
答案4
我要提醒的是,并不是所有的写入都会像您想象的那样频繁地发送到磁盘,有几个文件系统/内核缓冲区将发挥作用,它们都“应该”帮助优化您的体验。
系统的 IO 活动将非常依赖于在其上运行的应用程序。您能否提供有关将要运行哪些应用程序的更多信息?是否有任何 DB(MySQL 等),是否有任何喜欢生成大量日志数据的服务器进程(Apache/httpd)?