ディスクがほぼいっぱいになったときにアクションを実行できるように、cfengine3にクラスを設定したいと思います。
これが私がそれをした方法です。 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" };
}
パーティションの使用可能なスペースを返す関数 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";
}
よろしく