Postfix không còn đăng nhập vào / var / log / mail sau khi nó đã bị xóa và tạo lại?


10

Tôi vô tình xóa /var/log/mailtập tin. Cho đến thời điểm đó tôi đã có thể theo dõi nó bằng cách sử dụng công cụ postfix. Bây giờ, có vẻ như Postfix không gửi nhật ký của nó tới /var/log/mail, vì tệp không được cập nhật với thông điệp tường trình mới.

Câu trả lời:


9

Khi bạn xóa tệp mail.log, rsyslog (trên ubfox) sẽ xử lý lỏng lẻo thành tệp. Để làm cho nó hoạt động trở lại trên Ubuntu, vui lòng cung cấp:

sudo service rsyslog restart

Điều này sẽ không chỉ tạo tập tin mới mà còn bắt đầu viết nhật ký.


1
Thay vì nói những gì bạn đã làm, hãy làm cho câu trả lời chung chung hơn (theo cách chỉ dẫn) cho chúng tôi biết lý do tại sao.
Julie Pelletier

4

Ngay cả sau khi tạo một tập tin trống

touch /var/log/mail

bạn phải khởi động lại nhật ký hệ thống

service syslog restart

và sau đó là đăng nhập đạt được :)


4

Đây là một lỗi trong syslog, nhưng minh họa một vấn đề phổ biến khi một người xóa một tệp trong khi nó được mở bởi một chương trình. Khi bạn thực hiện "rm", bạn đang xóa một mục nhập thư mục, nhưng bạn KHÔNG xóa tệp bên dưới. Hệ điều hành giữ một số lượng tham chiếu đến tệp và sẽ không thực sự xóa dữ liệu tệp cơ bản cho đến khi số tham chiếu về không. Trong trường hợp tệp trung bình, số tham chiếu của tệp chưa mở là một (mục nhập thư mục). Khi tệp được mở, số lượng được tăng lên hai. Nếu một chương trình thứ hai mở cùng một tệp, số lượng sẽ được tăng lên thành ba. Nếu mục nhập thư mục hiện bị xóa, số đếm sẽ giảm xuống còn hai - có nghĩa là tệp không đồng nhất (không có tên),

Khi bạn xóa / var / log / mail, bộ ghi hệ thống vẫn mở tệp để ghi. Nếu bạn tạo một / var / log / mail mới, nó sẽ trỏ đến một tệp khác với tệp mà trình ghi nhật ký hệ thống hiện đang ghi. Cách duy nhất để làm cho mọi thứ nhất quán là khởi động lại bộ ghi hệ thống. Khi trình ghi nhật ký hệ thống ban đầu chấm dứt, tất cả các tệp được liên kết với nó sẽ bị đóng - bao gồm nhật ký thư nặc danh có mục nhập thư mục bạn đã xóa. Khi bạn khởi động lại bộ ghi hệ thống, nó sẽ mở lại / var / log / mail khi nó cần viết một thông điệp tường trình và sẽ giữ cho nó mở sau đó.

Một cách khác mà điều này thường được phát hiện là khi một chương trình đang chạy lấp đầy tất cả các đĩa với dữ liệu tệp; Người dùng xóa tệp rất lớn, nhưng không gian đĩa không được giải phóng, vì tệp vẫn tồn tại và đang chiếm dung lượng đĩa, nhưng mục nhập thư mục đã bị xóa. Khi chương trình kết thúc (vì người dùng đã giết nó hoặc nó tự kết thúc), không gian đĩa sẽ được phục hồi vì số tham chiếu trên tệp sẽ giảm về không.

Những gì trình ghi nhật ký có thể làm để ngăn chặn điều này là trước tiên hãy viết thông điệp tường trình, kiểm tra xem liệu thư mục tệp nhật ký có tồn tại không và nếu nó không tồn tại, hãy đóng tệp nhật ký gốc, mở một tệp mới, sau đó viết lại tin nhắn - để tin nhắn không bị mất. Nhưng để làm tất cả những điều đó đòi hỏi sự phức tạp hơn nhiều so với trình ghi nhật ký hệ thống phải có - đối với mỗi thông báo, nó sẽ mất nhiều thời gian hơn để viết do kiểm tra thư mục bổ sung - sẽ thành công mỗi khi tệp có KHÔNG bị xóa.

Để hiểu rõ hơn tất cả những điều trên, lệnh sau đây mang tính hướng dẫn, vì nó mô tả lệnh gọi hệ thống thực hiện loại bỏ mục nhập thư mục và phần giảm tham chiếu: "man 3 hủy liên kết"


4

Đó không phải là vấn đề trên CentOS 7. Ai đó nghĩ rằng sẽ có một ý tưởng tuyệt vời để có nhật ký thư hậu tố để đi qua nhà báo. Nếu bạn muốn xem nhật ký postfix:

journalctl -u postfix

(để xem toàn bộ nhật ký)

journalctl -u postfix -f

(để theo dõi nhật ký)

Bạn cũng có thể cần trong main.cf cho postfix

syslog_name = postfix

1
Tôi đã dành ba giờ cố gắng để sửa chữa một hệ thống nơi đăng nhập biến mất. Tôi đã không tìm thấy bài đăng này, tôi sẽ mất thêm 3 giờ nữa. Tạp chí của tôi có 10000 dòng, vì vậy lệnh này cũng giúp tôi rất nhiềujournalctl --vacuum-time=1d
Eugene van der Merwe

2

fwiw phiên bản mới hơn của logfix đăng nhập /var/log/mail.logvà tôi cũng phải chạy sudo chmod a+w /var/log/mail*service postfix restartđể lấy lại logfix của tôi sau khi xóa nó

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.