使用 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
如果您使用cron 作业,则需要这样做。
进行一些谷歌搜索确认这确实可能是问题所在。一封电子邮件描述了问题:
您需要使用该
--input-logs
选项。如果ausearch
将 stdin 视为管道,则它假定这是从中获取数据的地方。输入日志选项告诉它忽略 stdin 是管道的事实并处理日志。Aureport
有同样的问题和修复它的选项。此问题已在 1.6.7 一般版本中修复,并向后移植到 1.6.5 RHEL5 版本。
似乎也有用户没有通过使用 来解决这个问题--input-logs
,但不清楚还有什么可能是错误的,因为他们从来没有任何后续行动。