Cron posta göndermek için hangi postayı kullanıyor?


12

Yapılandırmadığım bir Centos 6 kutusuna cron posta göndermeme sorunu ile hata ayıklamaya çalışıyorum. Posta göndermek için hangi posta cronunun kullandığını nasıl belirleyebilirim? Crontab man sayfasının kısmen söylemek gerekirse:

LOGNAME, HOME ve SHELL'e ek olarak, cron (8), "this" crontab'da komut çalıştırmanın bir sonucu olarak posta göndermenin herhangi bir nedeni varsa MAILTO'ya bakacaktır. MAILTO tanımlanmışsa (ve boş değilse), kullanıcıya adlandırılmış olarak posta gönderilir. MAILTO tanımlanmış ancak boşsa (MAILTO = ""), posta gönderilmez. Aksi takdirde crontab sahibine posta gönderilir. Bu seçenek, cron - / bin / mail kurduğunuzda maili postanız olarak / usr / lib / sendmail yerine / bin / mail'e karar verirseniz yararlıdır ve UUCP genellikle postalarını okumaz.

Yıldız işareti olan kısım, "Peki, sendmail mi posta mı?" Diye merak eden kısım.

Yanıtlar:


3

Çabuk bir Google bana, /etc/sysconfig/crondpostanın cron tarafından ne kullanıldığını tanımlayan dosya olduğunu gösteriyor .


Google-fu'm görünüşe göre korkunç çünkü bunu aramak için çok zaman harcadım. Teşekkürler.
cbmanica

23

Cron (8) (aslında mesajı gönderen daemon) için man sayfasına göre:

   -m     This  option  allows you to specify a shell command string to use for 
          sending cron mail output instead of sendmail(8).  This command must 
          accept a fully formatted mail message (with headers) on stdin and send
          it as a mail message to the recipients specified in the mail headers.

Bu beni varsayılan olarak sendmail kullandığına inandırıyor. Strace ile doğrulayalım:

E-posta oluşturacak bir cron işi oluşturun:

user@host1 ~:
$ crontab -e
crontab: installing new crontab
user@host1 ~:
$ crontab -l
MAILTO=example@example.com
*/5 * * * * echo "testing"

Şimdi crond için işlem kimliğini bulun:

user@host1 ~:
$ ps auxww | grep crond
root      9684  0.0  0.0 117280  1296 ?        Ss   Jul22   0:17 crond
user     36344  0.0  0.0 103240   884 pts/2    S+   23:01   0:00 grep crond

Prosesle ilgili aktivite arayan crond sürecine strace ile bağlayın. Strace stderr'a yazarken onu stdout'a yönlendirdim ve 'mail' için selam verdim:

root@host1 ~:
# strace -fp 9684 -s 1024 -e trace=process 2>&1 | grep mail
[pid 36204] execve("/usr/sbin/sendmail", ["/usr/sbin/sendmail", "-FCronDaemon", "-i", "-odi", "-oem", "-oi", "-t", "-f", "root"], [/* 16 vars */]) = 0
^C

Evet, sendmail.


4
Test ettiğiniz sistemde.
mfinni

3
Sağ, bu soruda etiketlenmiş CentOS olan varsayılan yapılandırmasında.
yoonix

2
Burada yorgun bir davula vurduğumu biliyorum, ama bu yapılandırılabilir bir parametre ve soru askerin kurmadığı bir sistemi içeriyordu. Söz konusu sistem için postacı önceden varsayılandan değiştirilmiş olabilir. Asker varsayılanı biliyor.
mfinni

6
Doğru, ancak varsayılan yapılandırmasında, yapılandırma dosyasında postaya referans veren hiçbir şey yoktur (eksi yorumlar, tüm içerik CRONDARGS=). Yapılandırılabilir olması, kişinin kendini doğrulamak için adımları neden dahil ettiğimdir.
yoonix
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.