2011-07-04 15:23:42 +0000 2011-07-04 15:23:42 +0000
446
446

Wat is het "Je hebt nieuwe mail" bericht in Linux/UNIX?

Soms, als ik inlog in een box en ‘su’ naar root, krijg ik een schattig berichtje dat zegt dat ik mail heb (godzijdank is het geen AOL).

  • Waar is deze mail?
  • Wat staat er in?
  • Wie/Wat heeft het verstuurd?
  • Hoe belangrijk is het?

Is dit zelfs echte “mail” in dezelfde zin als e-mail? Of vertelt het gewoon mijn systeem me iets?

EDIT: In verband met deze vraag, zou ik mezelf mail kunnen sturen met behulp van het sendmail programma als volgt: email@localhost?

Antwoorden (7)

367
367
367
2011-07-04 16:30:34 +0000

Waar is deze mail?

Het zit waarschijnlijk in het spoelbestand: /var/mail/$USER of /var/spool/mail/$USER zijn de meest voorkomende locaties op Linux en BSD.

(Andere locaties zijn mogelijk - controleer of $MAIL is ingesteld - maar standaard informeert het systeem je alleen over /var(/spool)/mail. )

Meestal is het spoelbestand in een zeer eenvoudig mbox formaat, zodat je het kunt openen in een tekstverwerker of pager.

Voor een iets handigere manier worden de meeste distributies geleverd met een programma genaamd mail (of Mail, mailx). Je kunt mutt of alpine proberen; je kunt het zelfs zo instellen dat het naar een externe mailbox wordt gestuurd. (Zie “is dit echte mail?” hieronder.)

Wat bevat het, en wie/wat heeft het verstuurd?

De meeste berichten bevatten output van cron jobs, of een systeembeveiligingsrapport door logwatch, of gelijkaardige troep. Lees het en ontdek het.

Hoe belangrijk is het?

hangt sterk af van de inhoud van elk bericht.

Je moet op zijn minst de subject headers scannen - vaak negeren mensen de mail maandenlang zonder te beseffen dat hun dagelijkse cron jobs falen.

Is dit wel degelijk “mail” in dezelfde zin als e-mail? Of zegt alleen mijn systeem me iets?

Ja tegen beide - het wordt gegenereerd door je systeem en vertelt je iets, maar het is ook echte e-mail en kan als zodanig worden afgehandeld.

Je kunt (en moet) je mailsoftware - de “MTA” aka /usr/sbin/sendmail - configureren om de berichten door te sturen naar je persoonlijke mailadres. De exacte instructies variëren afhankelijk van welke MTA (indien aanwezig) je hebt geïnstalleerd, of dit een personal computer of een server is, of je een eigen domein hebt of een @gmail.com gebruikt, enzovoort.

Merk op dat /usr/sbin/sendmail tegenwoordig een gedeelde API is en _ hoeft niet_ noodzakelijkerwijs de originele Sendmail MTA te betekenen. In feite zou je moet Sendmail niet_ gebruiken, maar iets moderners zoals OpenSMTPD, Postfix, of Exim4. Ze bieden allemaal dezelfde /usr/sbin/sendmail tool, maar ze zijn makkelijker te configureren, veiliger en net zo krachtig.

219
219
219
2011-11-25 11:46:45 +0000

De makkelijkste manier voor mij was om het volgende in een terminal te doen:

cat /var/spool/mail/root
64
64
64
2014-08-30 19:47:07 +0000

Voor iedereen die zich afvraagt hoe je deze berichten één voor één kunt lezen, kun je gewoon ‘mail’

$ mail

gebruiken.

Om naar het volgende bericht te gaan kun je ‘next’ typen, een andere handige opdracht is ‘delete’…

Om meer te zien over hoe het mail programma werkt, zie de uitvoer van man mail.

41
41
41
2011-07-04 16:31:21 +0000

Ter verduidelijking: het is al lang de traditie dat UNIX-boxen een “lokaal geconfigureerde” mailerdaemon hebben die geen berichten via het internet stuurt, maar alleen berichten kopieert naar andere gebruikersspoelmappen (zoals @John T al aangaf). Het is echte SMTP-compatibele e-mail, het wordt gewoon niet via het Internet gerouteerd omdat dat niet nodig is.

Dus, als u een e-mailcliënt (zoals alpine of mutt) opstart, kunt u mail naar andere gebruikers op het systeem sturen door te adresseren naar user@hostname, of in veel gevallen, gewoon de gebruiker op te geven. Je hebt waarschijnlijk ook een hulpprogramma met de naam mailx dat gebruikt kan worden om een snelle e-mail te sturen met behulp van je shell.

Nu, als je berichten wilt sturen naar gebruikers op andere systemen dan degene waar je bent ingelogd, dan begint daar de echte pret. Je moet je mailer daemon configureren om externe e-mail te herkennen en af te geven aan een transferagent, de transferagent configureren, en een heleboel dingen doen die ik zelf nog niet begrijp.

26
26
26
2011-07-04 15:29:18 +0000

*Waar is deze mail? *

Zeer waarschijnlijk opgeslagen op uw machine, in de mailbox map voor uw hoofdgebruiker (waar dat afhangt van het soort mailserver dat u hebt geïnstalleerd). Je kunt het waarschijnlijk vrij snel benaderen via alpine.

*Wat bevat het? *

Waarschijnlijk gewoon wat systeemmeldingen. “Zo en zo probeerde ik 10 keer in te loggen met een verkeerd wachtwoord”… “Ik wou dat iemand updates op mij zou uitvoeren”, “driver zo-en-zoals-is constant aan het falen”, “De NSA bot heeft de prestaties met 1% verhoogd”… etc..

*Wie/Wat heeft het verstuurd? *

Services op uw server, waarschijnlijk.

*Hoe belangrijk is het? *

Hangt af van hoe belangrijk uw server is.

14
14
14
2011-07-04 15:28:29 +0000

Deze mail bevindt zich meestal in /var/spool/mail/root wanneer de (gebruikelijke) standaard verzendingsmail daemon is geconfigureerd. Het bevat een RAW e-mailbericht dat kan worden gelezen door het hulpprogramma mail. Wie het verstuurd heeft kan gevonden worden door het mail programma te draaien en de berichten te pagen of de RAW headers te lezen.

Het belang van het bericht hangt meestal af van de vorige factor, wie het verstuurd heeft :)

Veel systeemprogramma’s zullen het mailsubsysteem gebruiken als een middel om te rapporteren en te loggen. Logboekwachters en andere diensten kunnen een e-mail sturen naar de lokale root gebruiker als een herinnering over een specifieke gebeurtenis, zoals lage schijfruimte of hardwarefouten. De mailer daemon zal u ook waarschuwen als het niet lukt om een uitgaande e-mail te versturen.

12
12
12
2014-09-03 00:16:39 +0000

less +G /var/spool/mail/root

toont de laatste mails, aan het einde als het bestand.

Direct tonen van het mailbestand is een goed idee, maar het gebruik van cat kan gemakkelijk fout gaan. U wilt niet dat alle mails voorbij scrollen, als er veel berichten zijn, of zeer lange berichten in het bestand. Ik zag er net een met 150MB, twee miljoen regels.

Als je niet root bent:

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

De +G optie wordt gebruikt om het nieuwste bericht eerst te tonen; Het staat niet bovenaan het bestand, maar aan het eind.

Het is een optie van less, waardoor het de laatste pagina van het bestand laat zien na het starten. Dat toont het laatste bericht (nieuwste), als het op één pagina past, of het einde daarvan anders.

De bestandsnaam kan /var/spool/mail/mail zijn in plaats van /var/spool/mail/root