我编写了以下简单的脚本来自动运行助手并通过电子邮件发送结果。
nice -n 12 aide -C
mailx -s "AIDE Report: ${HOST}" ${ADMIN}@${SMTP} < /var/log/aide.log
exit
它在 rhel7、rhel8 和 slackware 14.2 上按预期工作。但是,它在 slackware 15.0 上无法按预期工作。也就是说,它运行并发送电子邮件;但是,它然后挂起。我必须按 Ctrl-C 才能恢复 CLI 提示符。
它工作的程序组合是:bash-4.2.46、mailx-12.5.7、aide-0.15.1 bash-4.4.20、mailx-12.5.7、aide-0.16 bash-4.3.48、mailx-12.5。 7、助手-0.17.3
它挂起的程序版本是:bash-5.1.16、mailx-14.9.23、aide-0.17.3
我不知道如何解决这个问题。
更新: 这变得越来越令人困惑。
/root/bin/AideCheck.sh
当我直接在前台或后台运行脚本时,它会“挂起”,我必须按 Ctrl-C 才能恢复 CLI 提示符。
当我使用莫顿的使用“bash -x”的建议时,它在前台“按预期”运行。输出:
root@loki:~/bin# bash -x /root/bin/AideCheck.sh
+ ADMIN=sysadmin
++ date +%Y%m%d
+ DATE=20220928
+ DOMAIN=aufait.net
++ hostname -f
+ HOST=loki.aufait.net
+ SMTP=smtp.aufait.net
+ nice -n 12 aide -C
< output of aide snipped >
+ echo loki.aufait.net [email protected]
loki.aufait.net [email protected]
+ mailx -s 'AIDE Report: loki.aufait.net' [email protected]
+ exit
root@loki:~/bin#
但是,当我在后台运行它时,它“挂起”。输出:
root@loki:~/bin# bash -x /root/bin/AideCheck.sh &
[1] 16846
root@loki:~/bin# + ADMIN=sysadmin
++ date +%Y%m%d
+ DATE=20220928
+ DOMAIN=aufait.net
++ hostname -f
+ HOST=loki.aufait.net
+ SMTP=smtp.aufait.net
+ nice -n 12 aide -C
< output of aide snipped >
+ echo loki.aufait.net [email protected]
loki.aufait.net [email protected]
+ mailx -s 'AIDE Report: loki.aufait.net' [email protected]
^M^M^C^C
[1]+ Stopped bash -x /root/bin/AideCheck.sh
root@loki:~/bin# jobs
[1]+ Stopped bash -x /root/bin/AideCheck.sh
root@loki:~/bin# fg 1
bash -x /root/bin/AideCheck.sh
+ exit
^M 和 ^C 是我按下“enter”键和 Ctrl-C 时得到的。
在所有情况下,它都会发送电子邮件。后台运行和前台运行有什么区别?