linux下如何检测磁盘容量的变化?

linux下如何检测磁盘容量的变化?

我正在开发一个程序,需要监视系统安装以及磁盘和分区大小的更改。虽然我发现可以使用epollon检测安装的变化/proc/mounts,但有没有一种有效的方法来检测磁盘大小的变化?

  • 我已经尝试使用epollon /proc/partitions,但这没有帮助。
  • 我还注意到,当我更改磁盘大小时,内核环形缓冲区中会生成一些消息(见下文)。监视这些消息的缓冲区也可能有效,但我想知道是否有其他方法可以解决此问题。
[1883313.043332] sd 2:0:0:1: Capacity data has changed
[1883313.045638] sd 2:0:0:1: [sda] 1077936128 512-byte logical blocks: (552 GB/514 GiB)
[1883313.046073] sda: detected capacity change from 550829555712 to 551903297536

相关内容