Linux / UNIX에서“새 메일이 있습니다”메시지는 무엇입니까?


426

때로는 상자에 로그인하여 루트에 'su'할 때 메일이 있다고 말하는 작은 메시지가 나타납니다 (고맙습니다. AOL이 아닙니다).

  • 이 메일은 어디에 있습니까?
  • 무엇이 포함되어 있습니까?
  • 누가 / 무엇을 보냈습니까?
  • 얼마나 중요합니까?

이것이 실제 "메일"도 이메일과 같은 의미입니까? 아니면 내 시스템이 나에게 무언가를 말하고 있습니까?

편집 : 질문 과 관련하여 다음 과 같이 sendmail 프로그램을 사용하여 자신에게 메일을 보낼 수 email@localhost있습니까?


거기에 "이 텍스트는 메일 폴더의 내부 형식의 일부입니다 ..."라는 메시지가 있습니다. 물론 로그인 할 때마다 메일이 있다는 알림을받습니다.
GEdgar

1
@GEdgar : 이것은 일반적으로 mbox 메일 박스 사용을 중단 하고 Maildir 로 마이그레이션 해야 함을 의미합니다. :)
grawity



1
누군가보고있는 경우, 여기에 하나의 파일로 분할하는 powerhshell one-liner가 있습니다.$i=0;(gc .\mail\root -raw) -split '[^, ]From '|%{$i++;sc mail$i.eml -value ("From " + $_)}
JDuarteDJ

답변:


354

이 메일은 어디에 있습니까?

스풀 파일에 /var/mail/$USER있거나 /var/spool/mail/$USERLinux 및 BSD에서 가장 일반적인 위치 일 수 있습니다.

(다른 위치도 가능합니다 ( $MAIL설정되어 있는지 확인) – 기본적으로 시스템은 사용자에게만 알려줍니다 /var(/spool)/mail.)

일반적으로 스풀 파일은 매우 간단한 mbox 형식이므로 텍스트 편집기 나 호출기에서 열 수 있습니다.

조금 더 편리한 방법의 경우, 대부분의 배포판라는 프로그램을 함께 제공 mail(또는 Mail, mailx). 당신이 시도 할 수 mutt또는 alpine; 외부 사서함으로 보내도록 구성 할 수도 있습니다. 아래의 "이것이 실제 메일입니까?"를 참조하십시오.

무엇을 포함하고 누가 / 무엇을 보냈습니까?

대부분의 메시지에는 cron 작업의 출력 또는 logwatch 또는 유사한 정크에 의한 시스템 보안 보고서가 포함됩니다 . 그것을 읽고 알아 내십시오.

얼마나 중요합니까?

각 메시지의 내용에 따라 크게 달라집니다.

당신은 해야합니다 적어도 제목 헤더를 스캔 - 종종 사람들이 결코 일상 크론 작업이 실패 실현하지 개월 동안 메일을 무시합니다.

이것이 실제 "메일"도 이메일과 같은 의미입니까? 아니면 내 시스템이 나에게 무언가를 말하고 있습니까?

둘 다 그렇습니다 – 그것은 시스템에 의해 당신에게 무언가를 말함으로써 생성되지만, 그것은 또한 실제 이메일이며 그렇게 처리 될 수 있습니다.

/usr/sbin/sendmail메시지를 개인 메일 주소로 전달 하도록 메일 소프트웨어 ( "MTA")를 구성 할 수 있습니다 . 정확한 지침은 설치 한 MTA (있는 경우), 개인 컴퓨터 또는 서버인지, 도메인이 있는지 또는 @ gmail.com 등을 사용하는지에 따라 다릅니다 .

참고 /usr/sbin/sendmail요즘 공유 API입니다 하지 않습니다 반드시 원래의 센드 메일 MTA를 의미한다. 실제로 Sendmail을 사용 하지 말고 OpenSMTPD, Postfix 또는 Exim4와 같은보다 현대적인 것을 사용해야합니다. 모두 동일한 /usr/sbin/sendmail도구를 제공 하지만 구성하기 쉽고 안전하며 강력합니다.


3
좋은 대답입니다. OpenSMTPD, Postfix 또는 Exim4를 구성하여 이메일을 일반 이메일 주소로 전달하는 방법에 대한 정보가 포함 된 링크를 추가하면 더 좋을 것입니다.
imolit 2016 년

1
다음은 mutt 설정 방법을 보여주는 관련 질문입니다 . askubuntu.com/a/499335/75735
KalenGi

좋은 대답입니다. 하지만 mail이메일을 읽는 데 어떻게 사용 합니까? 맨은 말을하지 않습니다.
jpaugh

1
cat / var / mail / $ USER 명령으로 메일을보고 rm -rf / var / mail / $ USER 명령으로 제거했습니다.
Sinan Eldem

@ grawity 파일을 /var/mail/읽을 때 파일을 삭제 하거나 텍스트를 지우면됩니까? 감사합니다!
yaylitzis

205

가장 쉬운 방법은 터미널에서 다음을 실행하는 것입니다.

cat /var/spool/mail/root

5
지식에 실제로 추가되는 지금까지 가장 실용적인 답변. 이제 메일을 읽을 수 있습니다. 왜 이것이 가장 하단에 있는지 궁금합니다.
CDR

37
나는 이것이 꽤 오래된 질문 / 답변이라는 것을 알고 있지만 이 XKCD 는 토론과 관련 있습니다. (힌트 : 호버 텍스트)
Blackhawk

11
또는 less $MAIL탐색하려는 경우에도 마찬가지입니다.
Walf

7
또는 less +G $MAIL끝에서 시작합니다.
Charlie Gorichanaz

4
@Blackhawk 그리고 이제 더 많은 XKCD .
디저트

56

이 메시지를 하나씩 읽는 방법이 궁금하다면 누구나 '메일'을 사용하면됩니다.

$ mail

그런 다음 목록에서 읽으려는 메시지 번호를 입력하십시오.

다음 메시지로 가려면 '다음'을 입력하면 유용한 다른 명령은 '삭제'입니다.

mail프로그램 작동 방식 에 대한 자세한 내용 은의 출력을 참조하십시오 man mail.


3
//, CEntOS 6에서는 실제로 작동하지 않습니다.이 경우을 사용해야합니다 $ mailx.
Nathan Basanese

6
Ubuntu 16.04에서 먼저 다음 mailutils을 실행 하여 설치해야합니다.apt install mailutils
Edwin Yip

Amazon EC2 인스턴스에서sudo yum install mail
JonDoe297

1
맥 OS에 나를 위해 작동
juanmirocks

39

간단히 설명하자면, UNIX 상자가 인터넷을 통해 메시지를 라우팅하지 않고 다른 사용자 스풀 디렉토리 (@John T와 같은 메시지 만 복사 함)로 "로컬로 구성된"메일러 데몬을 실행하는 것이 오랜 전통이었습니다. 말하는). 실제 SMTP 호환 이메일이므로 인터넷을 통해 라우팅 할 필요가 없기 때문에 라우팅되지 않습니다.

따라서 전자 메일 클라이언트 ( alpine또는 같은 mutt)를 실행하면 주소를 user@hostname지정하거나 사용자를 지정하여 시스템의 다른 사용자에게 메일을 보낼 수 있습니다 . mailx쉘을 사용하여 빠른 전자 우편을 보내는 데 사용할 수 있는 명령 행 유틸리티가 있을 수도 있습니다.

이제 로그인 한 시스템이 아닌 다른 시스템의 사용자에게 메시지를 보내려면 진정한 즐거움이 시작됩니다. 외부 전자 메일을 전송 에이전트로 인식하고 전달하도록 메일러 데몬을 구성하고 전송 에이전트를 구성하며 아직 이해하지 못하는 많은 일을 수행해야합니다.


24

이 메일은 어디에 있습니까?

컴퓨터, 루트 사용자의 사서함 폴더에 저장되어있을 가능성이 높습니다 (여기서 설치 한 메일 서버의 종류에 따라 다름). 당신은 아마 알파인을 통해 꽤 빠르게 액세스 할 수 있습니다 .

무엇이 포함되어 있습니까?

아마도 일부 시스템 보고서 유형일 것입니다. "따라서 잘못된 비밀번호로 10 번 로그인을 시도했습니다." "누군가가 나에게 업데이트를 실행하기를 원합니다." .. 등

누가 / 무엇을 보냈습니까?

서버의 서비스 일 가능성이 높습니다.

얼마나 중요합니까?

서버가 얼마나 중요한지에 따라 다릅니다.


John이 / var / spool / mail / root에 저장되었다는 제안은 sendmail을 실행하고 있다고 가정 한 것입니다. 다른 메일 서버는 다른 위치를 사용하여 메일을 저장한다고 생각합니다.
James T Snell

사용자가 메일 서브 시스템을 사용하는 방법이 있습니까?
n0pe

White Phoenix : 메일을 다시받을 때 메일이 보이면 살펴 보겠습니다. :) 메일을 실행할 수있는 방법이 있습니까, 아니면 너무 현지화 된 질문입니까?
n0pe

사람들이 일반적인 전자 메일 의미로 사용하는 자신의 메일 서버 실행을 탐색하려면 먼저 어떤 배포판을 사용하고 있는지 아는 것이 도움이됩니까? 이 정보가 없으면 sendmail을 읽어 보는 것이 좋습니다. sendmail을 이미 실행하고있을 것입니다.
James T Snell

그들 대부분은 AIX를 실행하고 있지만 OpenSuSe를 실행하는 집에서 내 워크 스테이션에서 이것을 탐색하고 싶습니다
n0pe

14

이 메일은 일반적으로 /var/spool/mail/root(보통) 기본 sendmail 데몬이 구성된 경우에 있습니다. mail유틸리티 가 읽을 수있는 RAW 전자 메일 메시지가 포함되어 있습니다 . 누가 mail유틸리티 를 실행 하고 메시지를 통해 페이징하거나 RAW 헤더를 읽어 보면 찾을 수 있습니다 .

메시지의 중요성은 보통 이전 요소에 따라 다릅니다.

많은 시스템 유틸리티는보고 및 로깅 수단으로 메일 서브 시스템을 사용합니다. 로그 감시자 유틸리티 및 기타 서비스는 디스크 공간 부족이나 하드웨어 오류와 같은 특정 이벤트에 대한 알림으로 로컬 루트 사용자에게 전자 메일을 보낼 수 있습니다. 메일러 데몬은 이메일을 아웃 바운드로 전송하지 못한 경우에도 경고합니다.


메일 하위 시스템이 어떻게 설정되어 있는지 확인할 수있는 방법이 있습니까?
n0pe

@Max sendmail.mc파일은 대부분의 기본 설치에서 sendmail 데몬의 구성을 제어합니다. 일반적으로 아래에 /etc/mail있습니다.
John T

@Max 메일러 데몬을 원하는대로 구성 할 수 있도록 linuxhomenetworking.com/wiki/index.php/… 와 같은 튜토리얼을 읽는 것이 좋습니다 .
존 T

우분투 16.4., 나는 /etc/mail.rc관련이 없습니다sendmail
Timo

12

less +G /var/spool/mail/root

파일의 마지막 부분에 최신 메일이 표시됩니다.

메일 파일을 직접 표시하는 것이 좋지만 사용 cat하면 쉽게 잘못 될 수 있습니다. 파일에 많은 메시지가 있거나 매우 긴 메시지가있는 경우 모든 메일이 스크롤되는 것을 원하지 않습니다 . 방금 150MB, 2 백만 줄이있는 것을 보았습니다.

루트가 아닌 경우 :

sudo less +G /var/spool/mail/root

+G옵션은 최신 메시지를 먼저 표시하는 데 사용됩니다. 파일의 상단이 아니라 마지막에 있습니다.

less시작 후 파일의 마지막 페이지를 표시 하는 옵션입니다 . 마지막 메시지 (최신)가 한 페이지에 맞거나 그렇지 않으면 마지막 메시지를 표시합니다.

파일 이름 /var/spool/mail/mail대신에/var/spool/mail/root


//, 훌륭한 분석. 이 답변은 파일로 무엇을 해야할지 쉽게 알지 못하는 사람들에게 특히 유용합니다.
Nathan Basanese

4
다른 사람이 궁금해하는 경우 +G"처음이 아닌 끝에서 시작하여 각 파일을 처음에 표시하는 횟수가 줄어 듭니다." ( linux.die.net/man/1/less )
Sam
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.