【问题标题】:Running aide --check as a crontab job once a week每周运行一次 aide --check 作为 crontab 作业
【发布时间】:2020-07-11 01:05:11
【问题描述】:

我在让一个简单的(辅助 --check)作业作为 crontab 作业运行时遇到了真正的问题。我已经尝试了我能想到的一切,但它似乎无法运行。我试过在 crontab 中指定 shell:

SHELL=/bin/bash

我尝试了各种命令行变体:

*/1 * * * * root /bin/bash /usr/sbin/aide --check
*/1 * * * * /bin/bash /usr/sbin/aide --check
*/1 * * * * root /usr/sbin/aide --check
*/1 * * * * root /bin/bash /usr/sbin/aide --check >> /var/log/SystemFileCheck.log

加上其他人,但无法让它运行。我遵循了在线指南,这些指南都说我做得正确。我已经尝试将其放入 bash 脚本中并运行它,但没有运气。我做错了什么?

这些是我遇到的一些错误:

3 月 30 日 11:25:01 localhost CROND[14060]: (root) CMD (root /bin/bash /usr/sbin/aide --check >> /var/log/SystemFileCheck.log) 3 月 30 日 11:25:01 localhost CROND[14058]: (root) CMDOUT (/bin/sh: root: command not found)

3 月 30 日 11:28:01 localhost CROND[14397]: (root) CMD (root /bin/SystemIntegCheck.sh >> /var/log/SystemFileCheck.log) 3 月 30 日 11:28:01 localhost CROND[14395]: (root) CMDOUT (/bin/bash: root: command not found)

3 月 30 日 11:39:01 localhost CROND[16094]: (root) CMD (/bin/bash /usr/sbin/aide --check) Mar 30 11:39:01 localhost CROND[16092]: (root) CMDOUT (/usr/sbin/aide: /usr/sbin/aide: 无法执行二进制文件)

有人能解释一下吗?

提前致谢

PS。一分钟一次只是为了测试

【问题讨论】:

    标签: linux bash cron cron-task aide


    【解决方案1】:

    只能在系统 crontab 文件中指定用户 ID。用户的 crontab 文件的条目不采用用户 ID。有问题的条目显然可以在用户的​​ crontab 文件中找到,这就是为什么您会从第一个、第三个和第四个条目中得到 root: command not found

    从第二个开始,您会得到 cannot execute binary file,因为您要求 bash 在不是 bash 脚本时将 /usr/sbin/aide 作为 bash 脚本执行。你应该使用

    */1 * * * * /usr/sbin/aide --check
    

    【讨论】:

    • 谢谢,在您的帮助下我解决了这个问题。首先,我正在编辑用户 crontab,而实际上我应该编辑系统 crontab。我确实让用户一号工作,但是当我换回系统一号时,它仍然可以满足我的需要。非常感谢你的帮助。现在只需要将输出发送到第二个位置。
    • */1 * * * * /usr/sbin/aide --check >> /var/log/SystemFileCheck.log 应该可以正常工作。您甚至不需要设置 SHELL var,因为该命令对于默认 shell (/bin/sh) 来说是一个完全有效的命令
    猜你喜欢
    • 2013-05-19
    • 2019-07-31
    • 2017-10-31
    • 1970-01-01
    • 2019-10-09
    • 2021-06-25
    • 1970-01-01
    • 2011-03-20
    • 1970-01-01
    相关资源
    最近更新 更多