![如果我的磁盘已满 90% 以上,如何向 cfengine3 添加 low_disk_space 类?](https://linux22.com/image/509015/%E5%A6%82%E6%9E%9C%E6%88%91%E7%9A%84%E7%A3%81%E7%9B%98%E5%B7%B2%E6%BB%A1%2090%25%20%E4%BB%A5%E4%B8%8A%EF%BC%8C%E5%A6%82%E4%BD%95%E5%90%91%20cfengine3%20%E6%B7%BB%E5%8A%A0%20low_disk_space%20%E7%B1%BB%EF%BC%9F.png)
我想在 cfengine3 中设置一个类,这样如果磁盘几乎满了,我就可以执行一个操作。
答案1
以下是我的做法。repair_failed
助记符并不真正适合“我们检测到的可用磁盘空间比您想要的要少”,因为它不会尝试修复,但它似乎是添加类的方法。它对没有额外类的可用磁盘空间给出了完美的解释ohno
,但最终我想清除临时目录、真空数据库等,作为对条件的反应……
bundle agent storage
{
storage:
"/" volume => low_disk_space;
reports:
ohno::
"Oh noes!";
}
body volume low_disk_space {
freespace => "10%";
repair_failed => { "ohno" };
}
答案2
您可以使用该函数磁盘空闲返回分区上的可用空间
这是一个简单的例子(是的,我有很多可用空间):
body common control {
bundlesequence => { "test_free_space" };
}
bundle agent test_free_space {
vars:
"free" int => diskfree("/home");
"min_free_space" int => "200000000";
classes:
"not_enough_size" expression => isgreaterthan("$(min_free_space)", "$(free)");
reports:
not_enough_size::
"There is not enough space left on /home";
}
问候