例:特定のイベント・タイプに基づいてイベント・スクリプトの出力を制限する
複数のイベント タイプによってイベント ポリシーがトリガーされる状況では、イベント スクリプトをトリガーするイベントの数を制限できます。たとえば、以下のイベント ポリシーは、イベントui_logout_eventの有無が発生するたびに event-details.slax イベント スクリプトをui_login_eventトリガーします。
event-options {
policy event-detail {
events [ ui_login_event ui_logout_event ];
then {
event-script event-details.slax {
output-filename systemlog;
destination /tmp;
}
}
}
}
event-details.slax イベント スクリプトは、イベントが発生した場合にのみログ ファイルをui_login_event書き込みます。
version 1.0;
ns junos = "http://xml.juniper.net/junos/*/junos";
ns xnm = "http://xml.juniper.net/xnm/1.1/xnm";
ns jcs = "http://xml.juniper.net/junos/commit-scripts/1.0";
ns ext = "http://xmlsoft.org/XSLT/namespace";
var $event-definition = {
<event-options> {
<policy> {
<namex> "event-detail";
<eventsx> "ui_login_event";
<thenx> {
<event-scriptx> {
<namex> "event_detail.slax";
<output-filenamex> "foo";
<destinationx> {
<namex> "foo";
}
}
}
}
}
}
match / {
<event-script-resultsx> {
<event-triggered-this-policyx> {
expr event-script-input/trigger-event/id;
}
<type-of-eventx> {
expr event-script-input/trigger-event/type;
}
<process-namex> {
expr event-script-input/trigger-event/attribute-list/attribute/name;
}
}
}