cronjob はオプションとともに使用した場合、コマンド出力をリダイレクトしません。

cronjob はオプションとともに使用した場合、コマンド出力をリダイレクトしません。

cronjobを使用して実行すると、コマンド出力をファイルにリダイレクトできません

[root@mail /]# crontab -l  
*/1   *   *     *   *    /sbin/ausearch -i  >  /rummy

[root@mail /]# cat /rummy

奇妙なことは、オプションを提供しなくてもうまく-iリダイレ​​クトできることです。

[root@mail /]# crontab -l  
*/1 *   *   *   *   /sbin/ausearch > /rummy

[root@mail /]# cat /rummy  
usage: ausearch [options]
    -a,--event <Audit event id> search based on audit event id  
    --arch <CPU>            search based on the CPU architecture  
    -c,--comm  <Comm name>      search based on command line name  
    -  
    -  
    -  

構文エラーがありますか?それともここに何か抜けましたか?

注 – 「ausearch -i」は端末から以下の出力を取得し、出力をファイルにリダイレクトします。そのままリダイレクトされます。

    [root@server ~]# ausearch -i  
type=DAEMON_START msg=audit(05/22/2017 11:14:10.391:6858) : auditd                     start, ver=2.4.5 format=raw kernel=2.6.32-696.el6.x86_64 auid=unset pid=1319 subj=system_u:system_r:auditd_t:s0 res=success 
----
type=CONFIG_CHANGE msg=audit(05/22/2017 11:14:10.519:5) : audit_backlog_limit=320 old=64 auid=unset ses=unset subj=system_u:system_r:auditctl_t:s0 res=yes 
----
type=USER_ACCT msg=audit(05/22/2017 11:20:01.108:6) : user pid=2073 uid=root auid=unset ses=unset subj=system_u:system_r:crond_t:s0-s0:c0.c1023 msg='op=PAM:accounting acct=root exe=/usr/sbin/crond hostname=? addr=? terminal=cron res=success' 
----
type=CRED_ACQ msg=audit(05/22/2017 11:20:01.108:7) : user pid=2073 uid=root auid=unset ses=unset subj=system_u:system_r:crond_t:s0-s0:c0.c1023 msg='op=PAM:setcred acct=root exe=/usr/sbin/crond hostname=? addr=? terminal=cron res=success' 
----
type=LOGIN msg=audit(05/22/2017 11:20:01.119:8) : pid=2073 uid=root subj=system_u:system_r:crond_t:s0-s0:c0.c1023 old auid=unset new auid=root old ses=unset new ses=1 
----

答え1

このコマンドは出力を生成しませんが、正常に実行されます。

rummyファイルが作成されたので表示できます。

ausearch実用的な事項「検索基準」を期待しているようです。、空の出力は出力を提供していないためです。

詳しくは、ausearchシステムのマニュアルを参照してください。


いくつかのマニュアルを読んだ後、私はausearch以下を見つけました:

--input-logs
ログファイルの場所をauditd.conf検索入力として使用します。ausearchクローンジョブを使用する場合は必須です。

インターネット検索では、これが実際に問題になる可能性があることを確認しました。問題を説明するメール:

このオプションを使用する必要があります--input-logsausearchstdinがパイプとして処理されたら、パイプからデータを取得すると仮定します。 log オプションを入力すると、stdin がパイプであるという事実を無視し、ログを処理するように指示します。Aureport同じ問題とそれを解決するオプションがあります。

この問題は1.6.7一般リリースで修正され、1.6.5 RHEL5リリースにバックポートされました。

使用して問題を解決できなかったユーザーもいるようですが、フォローアップがまったくない--input-logsため、何が問題なのかは不明です。

関連情報