Я хотел бы установить класс в cfengine3, чтобы я мог выполнять действие, если диск почти заполнен.
Вот как я это сделал. В repair_failed
mnemonic не совсем соответствует утверждению «мы обнаружили, что на диске было меньше свободного места, чем вы хотели», поскольку он не пытается исправить, но, похоже, это способ добавить класс в результате. Он дает прекрасное объяснение свободного дискового пространства без дополнительных ohno
class, но в конечном итоге я хочу очистить временные каталоги, вакуумные базы данных и т. д. в качестве реакции на условие ...
bundle agent storage
{
storage:
"/" volume => low_disk_space;
reports:
ohno::
"Oh noes!";
}
body volume low_disk_space {
freespace => "10%";
repair_failed => { "ohno" };
}
Вы можете использовать функцию без дисков которые возвращают доступное пространство в разделе
Вот простой пример (да, у меня много свободного места):
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";
}
С уважением