Hỗ trợ cho% H được thêm vào trong phiên bản 3.9.0. Trong các phiên bản trước đó, logrotate không hỗ trợ strftime "% H:
DateFormat format_string: Xác định phần mở rộng cho dateext sử dụng các ký hiệu tương tự như strftime (3) chức năng Chỉ% Y% m% d và% s specifiers đang có. cho phép.
Từ trang logrotate người http://linux.die.net/man/8/logrotate
Tuy nhiên, bạn có thể sử dụng %s
trong chuỗi DateFormat, đó là số giây kể từ 1970/01/01. bạn có thể đặt dateformat -%Y%m%d-%s
. Điều này sẽ tạo tên tệp duy nhất mỗi lần nhật ký được xoay, vì vậy bạn có thể xoay tệp nhiều lần trong ngày. Thật không may, phần %s
sẽ không dễ đọc, nhưng bạn có thể dễ dàng chuyển đổi nó trở lại thành một ngày có thể đọc được với perl -e "print scalar(localtime(1451214849))"
.
Trên một số hệ thống, chương trình date
cho phép chuyển đổi dễ dàng như vậy với date -d @1451214849
(ví dụ: GNU date
). Trên hầu hết các hệ thống (ví dụ: Solaris date
), bạn có thể gặp may mắn với cú pháp như date -d "1970-01-01 + 1451214849 sec"
. Lưu ý rằng Busybox date
chỉ hỗ trợ thủ thuật @
nhưng không hỗ trợ các biểu thức phức tạp của ví dụ thứ hai.
Nguồn
2015-12-27 11:15:32
Hỗ trợ cho% H được thêm vào trong phiên bản [3.9.0] (https://github.com/logrotate/logrotate/blob/master/CHANGES). –
Cảm ơn Ivan, điểm tốt; Tôi đã chỉnh sửa câu trả lời của mình. –