.txt 파일 또는 .log 파일을 메일 및 mailx 명령에 첨부할 수 없습니다.

.txt 파일 또는 .log 파일을 메일 및 mailx 명령에 첨부할 수 없습니다.

ksh 스크립트를 실행한 후 이메일을 보내기 위해 mail 명령에 .log 파일이나 .txt 파일을 첨부하려고 합니다. mutt 명령은 내 컴퓨터에 아직 설치되지 않았으므로 설치해서는 안 되기 때문에 사용할 수 없습니다. 인터넷 검색으로 많은 것을 시도했지만 성공적으로 도움이 되지 않았습니다.

이것이 내 요구 사항입니다. 약 10개의 SQL 쿼리를 실행해야 하며 결과는 첨부 파일을 통해 이메일로 보내야 합니다. 나는 명령을 사용하여 그것을 실행하고 Check.ksh있습니다 .nohup

nohup Check.ksh > Valid_Check.log 2>&1 &

Check.ksh에서

typeset var TO="[email protected]";
typeset var SUB="Report";
typeset var BODY="Check Completed";
typeset var ATTACHMENT=${FILE_PATH}/Valid_Check.log

if [ -f "${ATTACHMENT}" ]; then 
echo "Log file exist";
else
echo "No Log File";
fi

uuencode Valid_Check.log Valid_Check.log | mail -s "${SUB}" "${BODY}" ${TO}

그리고 다음을 시도했습니다

#mailx -s "${SUB}" "${TO}" "${BODY}" < ${FILE_PATH}/Valid_Check.log

#cat ${FILE_PATH}/Valid_Check.log | mailx -s "${SUBJECT}" "${TO}" "${BODY}";

위 코드는 "유효한...사용자를 알 수 없음"과 같은 오류를 발생시킵니다.

어떤 의견이라도 도움이 되거나 다른 간단하고 쉬운 방법이 있습니까?

감사해요,

답변1

충분한 양의 새 파일이 있는 경우 옵션을 mailx사용하여 첨부 파일을 추가하세요.-a

mailx -s "$SUB" -a "Valid_Check.log" "$TO" <<<"$BODY"

당신은 또한 볼 수 있습니다https://access.redhat.com/solutions/104833

절망적으로 지난 천년에 갇혀 있고 올바른 첨부 파일을 처리할 수 있는 소프트웨어가 없다면 uuencode 데이터를 본문에 추가하기만 하면 됩니다.

( echo "$BODY"; echo; uuencode Valid_check.log Valid_check.log ) |
mailx -s "$SUB" "$TO"

그러나 기본 접근 방식에는 경쟁 조건이 있습니다. 출력 파일이 있으면 cron 작업이 완료되었음을 나타냅니다.시작,아직 끝나지 않았다. cron 작업 끝에 mail 명령을 배치하면 이 문제가 해결되며 이전 단계가 완료될 때까지 이메일이 전송되지 않습니다.

관련 정보