이 가이드는 Linux 명령줄에서 쉘 스크립트를 통해 이메일을 보내는 방법과 이러한 이메일에 첨부 파일을 추가하는 방법을 보여줍니다.
Linux 명령줄은 사용 방법을 알면 매우 강력할 수 있습니다. 데이터를 구문 분석하고, 프로세스를 모니터링하고, 백업을 자동화하고, 이를 사용하여 기타 여러 가지 유용하고 멋진 작업을 수행할 수 있습니다. 보고서를 작성하여 우편으로 보내야 하는 경우가 종종 있습니다. 그날의 백업이 정상적으로 진행되었는지 여부에 대한 알림처럼 간단한 요구 사항이 될 수 있습니다. Linux 명령줄 및에서 메일 보내기를 시작하는 데 도움을 드리겠습니다. 쉘 스크립트에서. 또한 명령줄에서 첨부 파일을 보내는 방법도 다룹니다. "mail" 명령으로 시작하겠습니다.
메일 명령
먼저 빠른 테스트를 실행하여 "sendmail" 응용 프로그램이 설치되고 올바르게 작동하는지 확인하십시오. 다음 명령을 실행하여 "[email protected]"을 귀하의 이메일 주소로 바꿉니다.
# mail -s "Hello world" [email protected]
리턴 키를 누르면 새 줄로 이동합니다. "This is test from my server" 텍스트를 입력합니다. 리턴 키를 다시 눌러 텍스트를 따르십시오. 그런 다음 Control+D 키 조합을 누르세요. 계속하다. 명령 프롬프트에서 메일 사본을 다른 주소로 표시할지 묻는 메시지가 표시됩니다. Control+D를 누르세요. 다시. 사서함을 확인하십시오. 이 명령은 "Hello world"라는 제목으로 언급된 이메일 ID로 메일을 보냅니다.
명령을 실행하는 동안 메일 본문에 내용을 추가하려면 다음 옵션을 사용할 수 있습니다. 직접 텍스트를 추가하려면:
# echo "메일 본문에 들어갈 것입니다." | mail -s "Hello world" [email protected]
메일이 파일의 내용을 읽도록 하려면:
# mail -s "Hello world" [email protected]
mail 명령의 다른 유용한 옵션은 다음과 같습니다.
- 주제 (메일 제목)
-c 이메일 주소 (이 "이메일 주소" 또는 참조에 사본을 표시)
-b 이메일 주소 (이 "이메일 주소" 또는 숨은 참조에 숨은 참조로 표시)
이러한 옵션을 사용하는 방법은 다음과 같습니다.
# echo “캘빈 앤 홉스의 세계에 오신 것을 환영합니다” | 메일 -s "Hello world" [email protected] -c [email protected] -b [email protected]
이메일 첨부에 MUTT 사용
mail 명령을 사용할 때의 주요 단점 중 하나는 첨부 파일 전송을 지원하지 않는다는 것입니다. 반면 mutt는 이를 지원합니다. 이 기능은 텍스트가 아닌 보고서를 생성하는 스크립트나 크기가 비교적 작아서 다른 곳에 백업하고 싶은 백업에 특히 유용하다는 것을 알았습니다. 물론 mutt를 사용하면 첨부 파일을 보내는 것 이상의 작업을 수행할 수 있습니다. "mail" 명령보다 훨씬 더 완전한 명령줄 메일 클라이언트입니다. 지금 당장은 우리가 자주 필요로 할 수 있는 기본적인 것들을 탐구할 것입니다. 메일에 파일을 첨부하는 방법은 다음과 같습니다.
# "첨부파일 보내기"를 에코합니다. | mutt -a backup.zip -s "첨부 파일" [email protected]
이 명령은 제목(-s) "attachment", 본문 텍스트 "첨부 파일 보내기.", 첨부 파일(-a) backup.zip이 포함된 메일을 [email protected]으로 보냅니다. mail 명령과 마찬가지로 "-c" 옵션을 사용하여 사본을 다른 메일 ID로 표시할 수 있습니다.
셸 스크립트에서 이메일 보내기
이제 기본 사항을 다루었으므로 셸 스크립트에서 메일을 보낼 수 있습니다. 다음은 파티션의 공간 사용량을 읽고 데이터를 메일로 보내는 간단한 셸 스크립트입니다.
<블록 인용>
#!/bin/bash
df -h | mail -s "디스크 공간 보고서" [email protected]
이 행을 Linux 서버의 파일에 저장하고 실행하십시오. 명령 결과가 포함된 메일을 받아야 합니다. 그러나 이보다 더 많은 데이터를 보내야 하는 경우에는 데이터를 텍스트 파일에 쓰고 메일을 작성하는 동안 메일 본문에 입력해야 합니다. 다음은 디스크 사용량과 메모리 사용량을 가져오고 데이터를 임시 파일에 기록한 다음 보내는 메일의 본문에 모두 입력하는 셸 스크립트의 예입니다.
<블록 인용>
#!/bin/bash
df -h> /tmp/mail_report.log
free -m>> /tmp/mail_report.log
mail -s "디스크 및 RAM 보고서" calvin@ cnh.com
이제 여기에 더 복잡한 문제가 있습니다. 몇 개의 파일을 백업한 다음 메일로 보내야 합니다. 먼저 메일로 보낼 디렉토리가 아카이브됩니다. 그런 다음 mutt를 사용하여 이메일 첨부 파일로 전송됩니다. 이를 위한 스크립트는 다음과 같습니다.
<블록 인용>
#!/bin/bash
tar -zcf /tmp/backup.tar.gz /home/calvin/files
echo | mutt -a /tmp/backup.tar.gz -s "매일 데이터 백업" [email protected]
마지막 줄의 시작 부분에 있는 echo는 설정되는 메일의 본문에 공백을 추가합니다.
이렇게 하면 Linux 명령줄과 셸 스크립트에서 메일 보내기를 시작할 수 있습니다. 더 많은 옵션을 보려면 mail과 mutt에 대한 "man page"를 읽으십시오(각각에 대한 전체 설명서를 보려면 "man mail" 및 "man mutt" 명령을 입력하십시오). 그런 다음 자동 보고서 보내기와 같이 mail 명령으로 무엇을 할 수 있는지 상상해 보세요.