데모(또는 직접진짜 문제부분)
내 서버를 검색하는 lynis 스크립트가 있습니다. 데모에서는 스크립트가 중요하지 않지만 어쨌든 스크립트는 다음과 같습니다.https://gitlab.com/sofibox/maxicron/-/blob/master/usr/local/maxicron/lynis/maxinis
스크립트는 완벽하게 실행되며 터미널을 통해 수동으로 실행할 때 오류가 출력되지 않습니다.
./maxinis manual --cronjob
스캔에 대한 이메일도 받게 됩니다
그러나 다음과 같이 특정 시간에 cronjob을 통해 이 스크립트를 실행하면:
06 21 * * * root /usr/local/maxicron/lynis/maxinis cron --cronjob > /dev/null
이메일을 보내는 것도 완벽하게 작동하지만 추가 이메일을 받았습니다.예약된 작업 데몬다음과 같은 3가지 경고 출력이 있습니다.
진짜 문제는 여기에 있습니다:
내 질문은 다음과 같습니다.삼위 그림의 경고 메시지에서 cron 데몬 이메일 경고를 받았습니다. 어떻게 억제해야 하나요?두 번째 줄Cron 데몬이 보낸 나머지 출력을 경고하고 유지하시겠습니까?
두 번째 출력 줄은 다음과 같습니다.
# Warning: iptables-legacy tables present, use iptables-legacy to see them
crontab에서 이 접근 방식을 사용해 보았지만 grep -v
작동하지 않는 것 같습니다.
06 21 * * * root /usr/local/maxicron/lynis/maxinis cron --cronjob > /dev/null | grep -v '# Warning: iptables-legacy tables present, use iptables-legacy to see them'
답변1
grep
이것이 작동하지 않는 이유는 메시지가 전송되지 stderr
않고 전송되므로 stdout
메시지 grep
가 전혀 표시되지 않기 때문입니다. 그렇기 때문에 에 보낸 후에도 stdout
이메일을 계속 받게 됩니다 /dev/null
. 다음과 같이 필터링 할 수 있습니다 stderr
.
somecommand > /dev/null 2>( grep -v 'unwanted error' 1>&2 )