Làm cách nào để xóa nội dung của tệp error.log nhưng giữ nguyên tệp


25

Tôi muốn xóa nội dung của tệp error.log (tệp nhật ký lỗi nginx), nhưng tôi không thực sự muốn xóa tệp.

điều này có thể không

chạy Ubuntu

Câu trả lời:


67

Bạn có thể sử dụng điều này:

>error.log

(gõ giống như vậy - một chuyển hướng đầu ra trống)

hoặc là

truncate -s0 error.log

@Ignacio: Nếu tệp đã tồn tại, hoặc sẽ cắt bớt nó. Nếu tập tin không tồn tại, hoặc sẽ tạo nó.
Tạm dừng cho đến khi có thông báo mới.

Bạn nói đúng, xấu của tôi.
Ignacio Vazquez-Abrams

Tùy chọn cuối cùng làm việc cho tôi, vì một số lý do sudo> error.log không hoạt động với tôi (
ubfox

5
@davidkonrad: Bạn sẽ phải root để chuyển hướng hoạt động vì nó được thực hiện trước khi sudocó hiệu lực. Hoặc bạn có thể làmsudo bash -c '>error.log'
Tạm dừng cho đến khi có thông báo mới.

1
@ divHelper11: Trong câu trả lời của tôi, tôi nói đó là "chuyển hướng đầu ra trống". Điều đó có nghĩa là "không có gì" đang được gửi đến tệp được đặt tên và ghi đè lên bất kỳ nội dung hiện có. Nó tương tự echo "some words" > output.txtnhưng không có gì xảy ra.
Tạm dừng cho đến khi có thông báo mới.

1

Bạn sẽ nhầm lẫn daemon. Xóa tập tin sau đó gửi SIGHUPđến nginx.


ĐĂNG KÍ? Tôi không thể tắt nginx xuống, lọc tệp, sau đó bắt đầu? Tôi muốn biết làm thế nào để xóa các tập tin cho kiến ​​thức vì lợi ích cũng.
dùng27449

Nếu bạn muốn, chắc chắn. Nhưng điều đó sẽ làm gián đoạn dịch vụ.
Ignacio Vazquez-Abrams

Tôi nghĩ rằng cả hai chuyển hướng null và một truncatenguyên tử, vì vậy miễn là không có tìm kiếm nào đang diễn ra (đặc biệt là nếu hoạt động duy nhất xảy ra là nối tiếp) thì không nên làm gián đoạn.
Tạm dừng cho đến khi có thông báo mới.
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.