방금 서버를 RHEL에서 CentOS로 변경했습니다. 일부 보고서를 실행하고 이메일을 통해 보내는 스크립트가 있습니다. 이메일을 실행하는 부분은 다음과 같습니다.
function email_report
{
( echo "Report attached."; uuencode report.csv report.csv ) |
mail -s "Report" [email protected] -- -f [email protected]
}
그러나 보고서가 수신되지 않으며 다음 메시지가 표시됩니다.
/usr/rp/dead.letter... 메시지를 /usr/rp//dead.letter에 저장합니다.
이 문제를 해결하는 방법을 아는 사람이 있나요? 메시지를 발생시킨 것은 바로 이 스크립트였습니다. 이메일을 보내는 다른 스크립트에는 문제가 없습니다.
콘텐츠 dead.letter
:
From rp Fri Oct 7 11:56:02 2016
Return-Path: <rp>
Received: (from rp@localhost)
by EXAMPLESERVER.localdomain (8.14.4/8.14.4/Submit) id u97Au2No020739;
Fri, 7 Oct 2016 11:56:02 +0100
From: rp
Message-Id: <[email protected]>
Date: Fri, 07 Oct 2016 11:56:02 +0100
To: [email protected], -f, --, [email protected]
Subject: Report
User-Agent: Heirloom mailx 12.4 7/29/08
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Report attached.
begin 664 OSWHMFHXSF.csv
M15)23U(Z"D]202TQ,C$U-#H@5$Y3.F-O=6QD(&YO="!R97-O;'9E('1H92!C
M;VYN96-T(&ED96YT:69I97(@<W!E8VEF:65D"@H*4U`R+3`S,#8Z($EN=F%L
M:60@;W!T:6]N+@I5<V%G93H@0T].3EM%0U1=(%ML;V=O;ET@6T%3('M365-$
M0D%\4UE33U!%4GU="G=H97)E(#QL;V=O;CX@(#HZ/2`\=7-E<FYA;64^6R\\
M<&%S<W=O<F0^75M`/&-O;FYE8W1?:61E;G1I9FEE<CY=('P@+PI34#(M,#,P
M-CH@26YV86QI9"!O<'1I;VXN"E5S86=E.B!#3TY.6T5#5%T@6VQO9V]N72!;
M05,@>U-94T1"07Q365-/4$52?5T*=VAE<F4@/&QO9V]N/B`@.CH](#QU<V5R
M;F%M93Y;+SQP87-S=V]R9#Y=6T`\8V]N;F5C=%]I9&5N=&EF:65R/ET@?"`O
M"E-0,BTP,34W.B!U;F%B;&4@=&\@0T].3D5#5"!T;R!/4D%#3$4@869T97(@
<,R!A='1E;7!T<RQE>&ET:6YG(%-13"I0;'5S"@``
`
end
답변1
설명하기는 쉽습니다 dead.letter
. 이는 이메일을 보내야 하는데 이메일 전송 소프트웨어가 이메일을 보낼 방법을 찾을 수 없는 경우의 표준 반응입니다.
따라서 이 스크립트가 작동하지 않고 다른 스크립트는 작동하지 않는 이유를 알아내야 합니다.
시도할 첫 번째 단계는 명령줄에서 성공 스크립트와 실패 스크립트 모두에 대해 mail 명령을 실행하는 것입니다. 이렇게 하면 잘못된 명령줄 옵션(이러한 옵션은 배포판에 따라 다를 수 있음)인지 아니면 일부 환경 차이(예: 환경 변수, 셸 별칭 또는 셸 함수)인지 확인할 수 있습니다.
명령줄에서 차이를 재현할 수 있으면 매개변수를 확인하고 수정하세요.
그렇지 않은 경우 실패한 스크립트의 메일링 행 앞에 행을 삽입하여 바이너리, 쉘 별명 또는 쉘 함수를 which mail
실행 중인지 확인하십시오 . 실패한 스크립트가 예상 바이너리를 실행하는 경우 RHEL에는 적합하지만 CentOS에는 적합하지 않은 방식으로 환경 변수를 설정하고 있을 수 있습니다.mail
즉, 범인을 찾을 때까지 가능한 차이점을 조사하십시오.