자동으로 어시스턴트를 실행하고 결과를 이메일로 보내기 위해 다음과 같은 간단한 스크립트를 작성했습니다.
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에서는 예상대로 작동하지 않습니다. 즉, 실행되어 이메일을 보내지만 정지됩니다. CLI 프롬프트를 복원하려면 Ctrl-C를 눌러야 합니다.
작동하는 프로그램 조합은 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
포그라운드 또는 백그라운드에서 스크립트를 직접 실행하면 스크립트가 "멈추고" CLI 프롬프트를 다시 시작하려면 Ctrl-C를 눌러야 합니다.
"bash -x" 사용에 대한 Morton의 제안을 사용하면 포그라운드에서 "예상대로" 실행됩니다. 산출:
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를 누르면 나타나는 것입니다.
모든 경우에 이메일이 전송됩니다. 백그라운드에서 실행하는 것과 포그라운드에서 실행하는 것의 차이점은 무엇인가요?