Назад | Перейти на главную страницу

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

Я хотел бы установить класс в 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";
}

С уважением