Как добавить класс low_disk_space в cfengine3, если мой диск заполнен более чем на 90%?

Я хотел бы установить класс в cfengine3, чтобы я мог выполнить действие, если диск почти заполнен.

2 ответа

Вот как я это сделал. repair_failed mnemonic на самом деле не соответствует "мы обнаружили, что свободного места на диске было меньше, чем вы хотели", так как он не пытается исправить, но, похоже, это способ добавить класс в результате. Это дает прекрасное объяснение свободного дискового пространства без дополнительного ohno класс, но в конце концов я хочу очистить временные каталоги, вакуумные базы данных и т. д. как реакция на условие...

bundle agent storage
{
storage:
    "/" volume => low_disk_space;

reports:
    ohno::
       "Oh noes!";
}

body volume low_disk_space {
        freespace => "10%";
        repair_failed => { "ohno" };
}

Вы можете использовать функцию diskfree, которая возвращает доступное пространство на разделе

Вот простой пример (да, у меня много свободного места):

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";
}

С уважением

Другие вопросы по тегам