0

我在让一个简单的(aide --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: 找不到命令)

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

任何人都可以对此有所了解吗?

提前致谢

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

4

1 回答 1

1

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

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

*/1 * * * * /usr/sbin/aide --check
于 2020-03-30T16:01:31.877 回答