Postfix artık silindikten ve yeniden oluşturulduktan sonra / var / log / mail'de oturum açmıyor mu?


10

Yanlışlıkla /var/log/maildosyayı sildim . O zamana kadar postfix malzeme kullanarak izleyebildim. /var/log/mailDosya yeni günlük iletileriyle güncellenmediğinden , Postfix günlüklerini göndermiyor gibi görünüyor .

Yanıtlar:


9

Mail.log dosyasını sildiğinizde, rsyslog (ubuntu üzerinde) dosyaya gevşek tanıtıcı. Ubuntu'da tekrar çalışmasını sağlamak için lütfen şunu verin:

sudo service rsyslog restart

Bu sadece yeni bir dosya oluşturmakla kalmayacak, aynı zamanda günlükleri yazmaya başlayacaktır.


1
Ne yaptığınızı söylemek yerine, cevabı daha genel (öğretici bir şekilde) bize nedenini açıklayın.
Julie Pelletier

4

Boş bir dosya oluşturduktan sonra bile

touch /var/log/mail

sistem günlüğünü yeniden başlatmanız gerekiyor

service syslog restart

ve sonra günlük kazancı :)


4

Bu, syslog'daki bir hatadır, ancak bir program tarafından açıkken bir dosyayı sildiğinde sık karşılaşılan bir sorunu gösterir. Bir "rm" yaptığınızda, bir dizin girdisini kaldırıyorsunuz ancak temel alınan dosyayı SİLMİYORSUNUZ. İşletim sistemi, dosyaya yapılan başvuruları tutar ve başvuru sayısı sıfıra gelene kadar temeldeki dosya verilerini silmez. Ortalama bir dosya durumunda, açılmamış dosyanın referans sayısı birdir (dizin girişi). Dosya açıldığında, sayı ikiye çıkarılır. İkinci bir program aynı dosyayı açarsa, sayım üçe çıkarılır. Dizin girişi şimdi silinirse, sayım ikiye düşürülür - bu, dosyanın anormal olduğu (adı yoktur),

/ Var / log / mail'i sildiğinizde, sistem günlükçüsü hala dosya yazmak için açıktır. Yeni bir / var / log / mail oluşturursanız, sistem kaydedicisinin şu anda yazdığı dosyadan farklı bir dosyayı gösterecektir. Her şeyi tutarlı hale getirmenin tek yolu sistem kaydediciyi yeniden başlatmaktır. Özgün sistem günlüğü sona erdiğinde, dizin girdisini sildiğiniz anonim posta günlüğü de dahil olmak üzere, ilişkili tüm dosyalar kapatılır. Sistem günlüğünü yeniden başlattığınızda, bir günlük mesajı yazması gerektiğinde yeniden açılacak / var / log / mail ve daha sonra açık kalacaktır.

Bunun sıklıkla keşfedilen bir başka yolu, çalışan bir programın tüm diski dosya verileriyle doldurmasıdır; kullanıcı çok büyük dosyayı siler, ancak dosya hala var olduğundan ve disk alanını kapladığı için disk alanı boşaltılmaz, ancak dizin girişi kaldırılmıştır. Program sona erdiğinde (kullanıcı onu öldürdüğü veya kendi kendine sona erdiği için), dosyadaki referans sayısı sıfıra ineceği için disk alanı kurtarılır.

Kaydedicinin bunu önlemek için yapabilecekleri ilk olarak günlük mesajını yazmak, günlük dosyası dizini girişinin var olup olmadığını kontrol etmek ve yoksa, günlük dosyasını kapatmak, yeni bir tane açmak ve ardından yeniden yazmaktır. mesaj - böylece mesaj kaybolmaz. Ancak tüm bunları yapmak için sistem kaydedicisinin sahip olması gerekenden çok daha fazla karmaşıklık gerekir - her ileti için ekstra dizin denetimi nedeniyle yazılması biraz daha uzun sürer - bu da dosya her seferinde başarılı olur Silinmedi.

Yukarıdakilerin tümünü daha açık bir şekilde anlamak için, aşağıdaki komut öğreticidir, çünkü dizin girişi kaldırmayı ve referans düşüşünü gerçekleştiren sistem çağrısını açıklar: "man 3 unlink"


4

CentOS 7'deki sorun bu değil. Birisi, postfix posta günlüklerinin günlükçüye gitmenin harika bir fikir olacağını düşündü. Postfix günlüklerini görmek istiyorsanız:

journalctl -u postfix

(tüm günlüğü görmek için)

journalctl -u postfix -f

(kütüğü kuyruğa almak için)

Postfix için main.cf dosyasına da ihtiyacınız olabilir.

syslog_name = postfix

1
Günlüğün kaybolduğu bir sistemi onarmak için üç saatimi harcadım. Bu yazıyı bulamadım mı, 3 saat daha geçirirdim. Dergimde 10000 satır vardı, bu yüzden bu komut da bana çok yardımcı oldujournalctl --vacuum-time=1d
Eugene van der Merwe

2

fwiw postfix log yeni sürümleri /var/log/mail.logve ben de çalıştırmak sudo chmod a+w /var/log/mail*ve service postfix restartsildikten sonra benim postfix günlükleri geri almak zorunda kaldı

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.