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