web-dev-qa-db-ja.com

NxLogは処理後にファイルを削除します

処理したらログファイルを削除したいのですが、次のようにしました。

<Extension multiline>
    Module      xm_multiline
    Exec        if $raw_event =~ /^\s*$/ drop();
    HeaderLine  /Debut du job/
</Extension>

<Input in1>
    Module      im_file
    File        '/opt/appl/appli/logs/*.nxlog'
    InputType   multiline
    Exec        $nxlog_message = $raw_event;
    Exec        $nxlog_tags = "appli";
    Exec        $nxlog_hostname = hostname();
    Exec        $nxlog_filename = file_name();
    Exec        to_json();
</Input>

<Extension exec_out>
    Module      xm_exec
</Extension>


<Output fileout1>
     Module      om_file
     File        "/tmp/test.log"
     Exec        exec_async("/bin/rm" + $nxlog_filename);
</Output>

今のところ、何も起こりませんでした…私はアイデアを楽しみにしています。

助けのためのThx :)

1
Tr4sK

問題は、exec_async()がコマンドに連結された引数を受け取らないことだと思います。つまり、代わりにこれが必要です。

Exec        exec_async("/bin/rm", $nxlog_filename);

/ bin/rmを呼び出す代わりに、組み込みの file_remove() を使用することをお勧めします。

1
b0ti