
메일 대기열에 있는 특정 메일 ID의 모든 메일 내용을 포함하는 로그 파일을 작성해야 합니다.
모든 메일 ID를 표시하는 아래 코드를 작성했습니다.
mailq | tail -n +2 | awk 'BEGIN { RS = "" } / root@'+`hostname`+'$/ { print $1 }'
예: 내 호스트 이름은 다음과 같습니다.test.com위 쿼리는 해당 메일의 모든 메일 대기열 ID를 표시합니다.[이메일 보호됨]
산출: 그렇게
295E36A10B7
270986A1407
26F296A1460
9099D6A02F8
하지만 메일 대기열 ID의 내용을 표시하기 위해 다음 쿼리를 시도해 보겠습니다. 작동하지 않습니다.
for i in mailq | tail -n +2 | awk 'BEGIN { RS = "" } / root@'+`hostname`+'$/ { print $1 }' ; do postcat -q $i >> maillog.log; postsuper -d $i; done ;
작동하지 않습니다. 모든 메일 내용을 표시하는 방법에 대한 아이디어를 제공해 주시겠습니까?
답변1
마지막으로 아래 솔루션을 시도했습니다. 잘 작동합니다.
array=($(mailq | tail -n +2 | awk 'BEGIN { RS = "" } / root@'+`hostname`+'$/ { print $1 }'));
for i in ${array[@]};
do
postcat -q $i >> maillog.log;
postsuper -d $i;
done