Dan Bernstein multilog rõ ràng có thể làm điều này - hoặc có lẽ hầu hết của nó, trong khi cung cấp một lối thoát qua mô tả tập tin để xử lý! Để tạo nên sự khác biệt như bạn thích - dù 20M / 1G thông số kỹ thuật Kích thước có thể mất một finagling như nó có vẻ 16M là nó giới hạn ngoài cho mỗi bản ghi. Phần lớn, phần lớn là lựa chọn sao chép + dán từ liên kết ở trên, mặc dù liên kết cũng nêu chi tiết các tùy chọn khác như dấu thời gian trên mỗi dòng, duy trì [một] tệp khác chỉ chứa mẫu phù hợp với dòng gần đây nhất và hơn thế nữa .
Giao diện
multilog script
... tập lệnh bao gồm bất kỳ số lượng đối số. Mỗi đối số chỉ định một hành động. Các hành động được thực hiện theo thứ tự cho từng dòng đầu vào.
Chọn dòng
Mỗi dòng được chọn ban đầu. Hành động...
-pattern
... bỏ chọn dòng nếu mẫu phù hợp với dòng. Hành động...
+pattern
chọn dòng nếu mẫu phù hợp với dòng.
... mô hình là một chuỗi các ngôi sao và không phải ngôi sao. Nó phù hợp với bất kỳ chuỗi nối nào được khớp bởi tất cả các ngôi sao và không phải ngôi sao theo cùng một thứ tự. Một ngôi sao không phù hợp với chính nó. Một ngôi sao trước khi kết thúc mẫu khớp với bất kỳ chuỗi nào không bao gồm ký tự tiếp theo trong mẫu. Một ngôi sao ở cuối mẫu phù hợp với bất kỳ chuỗi nào.
Nhật ký tự động xoay
Nếu dir bắt đầu bằng dấu chấm hoặc dấu gạch chéo thì hành động ...
dir
... Nối từng dòng được chọn vào một bản ghi có tên dir . Nếu dir không tồn tại, multilog
tạo ra nó.
Định dạng nhật ký như sau:
dir là một thư mục chứa một số tệp nhật ký cũ, tệp nhật ký có tên hiện tại và các tệp khác multilog
để theo dõi các hành động của nó.
Mỗi tệp nhật ký cũ có tên bắt đầu bằng @ , tiếp tục với dấu thời gian chính xác hiển thị khi tệp kết thúc và kết thúc bằng một trong các mã sau:
- .s : Tập tin này được xử lý hoàn toàn và ghi vào đĩa một cách an toàn.
- .u : Tập tin này đã được tạo tại thời điểm ngừng hoạt động. Nó có thể đã bị cắt ngắn. Nó đã không được xử lý.
Hành động...
ssize
... Đặt kích thước tệp tối đa cho các hành động dir tiếp theo . multilog
sẽ quyết định rằng dòng điện đủ lớn nếu dòng điện có byte kích thước . ( multilog
cũng sẽ quyết định rằng dòng điện đủ lớn nếu nó nhìn thấy một dòng mới trong phạm vi 2000 byte của kích thước tệp tối đa; nó cố gắng hoàn thành các tệp nhật ký ở ranh giới dòng.) kích thước phải nằm trong khoảng từ 4096 đến 16777215. Kích thước tệp tối đa mặc định là 99999.
Trong các phiên bản 0,75 trở lên: Nếu multilog
nhận được tín hiệu ALRM , nó ngay lập tức quyết định rằng dòng điện đủ lớn, nếu dòng điện không trống.
(Lưu ý: Tôi nghi ngờ zsh
schedule
nội dung có thể dễ dàng bị thuyết phục để gửi một ALRM
khoảng thời gian được chỉ định nếu cần thiết.)
Hành động...
nnum
... Đặt số lượng tệp nhật ký cho các hành động dir tiếp theo . Sau khi đổi tên hiện tại , nếu multilog
thấy num hoặc nhiều tệp nhật ký cũ, nó sẽ xóa tệp nhật ký cũ với dấu thời gian nhỏ nhất. num phải có ít nhất 2. Số tệp nhật ký mặc định là 10.
Hành động...
!processor
... Đặt bộ xử lý cho các hành động dir tiếp theo . multilog
sẽ cung cấp dòng điện qua bộ xử lý và lưu kết quả đầu ra dưới dạng tệp nhật ký cũ thay vì hiện tại . multilog
cũng sẽ lưu bất kỳ đầu ra nào mà bộ xử lý ghi vào bộ mô tả 5 và làm cho đầu ra đó có thể đọc được trên bộ mô tả 4 khi nó chạy bộ xử lý trên tệp nhật ký tiếp theo. Để có độ tin cậy, bộ xử lý phải thoát khỏi nonzero nếu nó có bất kỳ sự cố nào khi tạo đầu ra của nó; multilog
sau đó sẽ chạy lại nó Lưu ý rằng bộ xử lý đang chạy có thể chặn bất kỳ đầu vào cấp chương trình nào multilog
.