Como adiciono uma classe low_disk_space a cfengine3 se meu disco estiver com mais de 90% do total?

2

Eu gostaria de definir uma classe em cfengine3 para que eu possa executar uma ação se o disco estiver quase cheio.

    
por joeforker 19.03.2010 / 18:11

2 respostas

3

Veja como eu fiz isso. O repair_failed mnemônico realmente não se encaixa no "nós detectamos que havia menos espaço livre em disco do que você queria", já que ele não tenta nenhum reparo, mas parece ser o caminho para adicionar uma classe como resultado. Ele fornece uma explicação perfeitamente correta do espaço livre em disco sem a classe ohno extra, mas eventualmente eu quero limpar diretórios temporários, bancos de dados de vácuo, etc. como uma reação à condição ...

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

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

body volume low_disk_space {
        freespace => "10%";
        repair_failed => { "ohno" };
}
    
por 19.03.2010 / 21:30
2

Você pode usar a função diskfree que retorna o espaço disponível na partição

Aqui está um exemplo simples (sim, eu tenho muito espaço livre):

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

Atenciosamente

    
por 19.03.2010 / 18:47

Tags