Multilogของ Dan Bernstein สามารถทำสิ่งนี้ได้ - หรืออาจเป็นเรื่องส่วนใหญ่ในขณะเดียวกันก็มีทางออกผ่าน file descriptors ถึง! processorเพื่อสร้างความแตกต่างตามที่คุณต้องการ - ถึงแม้ว่าขนาดของ 20M / 1G นั้นอาจใช้เวลานานกว่าเดิม นอกขีด จำกัด ต่อบันทึก สิ่งที่ตามมาคือในส่วนใหญ่สำเนา + วางเลือกจากการเชื่อมโยงดังกล่าวข้างต้นแม้ว่าการเชื่อมโยงไปยังรายละเอียดตัวเลือกอื่น ๆ เช่น Timestamping ต่อบรรทัดรักษา [an] ไฟล์อื่น ๆ [s] ที่มีเพียงมากที่สุดการจับคู่สายที่ผ่านมารูปแบบและอื่น ๆ .
อินเตอร์เฟซ
multilog script
... สคริปต์ประกอบด้วยอาร์กิวเมนต์จำนวนเท่าใดก็ได้ แต่ละอาร์กิวเมนต์ระบุหนึ่งการกระทำ การดำเนินการจะดำเนินการตามลำดับสำหรับอินพุตแต่ละบรรทัด
การเลือกเส้น
แต่ละบรรทัดจะถูกเลือกในขั้นต้น การกระทำ ...
-pattern
... ยกเลิกการเลือกบรรทัดหากรูปแบบตรงกับบรรทัด การกระทำ ...
+pattern
เลือกบรรทัดหากรูปแบบตรงกับบรรทัด
... patternเป็นชุดของดาวและไม่ใช่ดาว มันตรงกับการต่อกันของสตริงที่จับคู่โดยดาวทั้งหมดและไม่ใช่ดาวในลำดับเดียวกัน ดาวที่ไม่ตรงกับตัวเอง ดาวก่อนส่วนท้ายของรูปแบบจะจับคู่สตริงที่ไม่มีอักขระถัดไปในรูปแบบ ดาวที่ส่วนท้ายของรูปแบบตรงกับสตริงใด ๆ
บันทึกการหมุนโดยอัตโนมัติ
หากdirเริ่มต้นด้วยจุดหรือสแลชแล้วการกระทำ ...
dir
... ผนวกบรรทัดที่เลือกแต่ละคนที่จะเข้าสู่ระบบการตั้งชื่อdir หากไม่มีdirให้multilog
สร้างขึ้น
รูปแบบบันทึกมีดังนี้:
dirเป็นไดเรกทอรีที่มีไฟล์บันทึกเก่าจำนวนหนึ่งไฟล์บันทึกชื่อปัจจุบันและไฟล์อื่น ๆmultilog
เพื่อติดตามการดำเนินการ
ไฟล์บันทึกเก่าแต่ละไฟล์มีชื่อขึ้นต้นด้วย@ดำเนินการต่อด้วยการประทับเวลาที่แม่นยำที่แสดงเมื่อไฟล์เสร็จสิ้นและลงท้ายด้วยหนึ่งในรหัสต่อไปนี้:
- .s : ไฟล์นี้ได้รับการประมวลผลอย่างสมบูรณ์และเขียนลงดิสก์อย่างปลอดภัย
- .u : ไฟล์นี้ถูกสร้างขึ้นในขณะที่ไฟดับ มันอาจถูกตัดทอน มันยังไม่ได้รับการประมวลผล
การกระทำ ...
ssize
... กำหนดขนาดไฟล์สูงสุดสำหรับการกระทำdir ที่ตามมา multilog
จะตัดสินว่ากระแสมีขนาดใหญ่พอถ้ากระแสมีขนาดเป็นไบต์ ( multilog
จะตัดสินว่ากระแสนั้นมีขนาดใหญ่พอที่จะเห็นบรรทัดใหม่ภายใน 2,000 ไบต์ของขนาดไฟล์สูงสุดมันจะพยายามจบไฟล์บันทึกที่ขอบเขตของบรรทัด) ขนาดต้องอยู่ระหว่าง 4096 ถึง 16777215 ขนาดไฟล์สูงสุดเริ่มต้นคือ 99999
ในรุ่น 0.75 ขึ้นไป: หากmultilog
ได้รับสัญญาณALRMจะตัดสินทันทีว่ากระแสไฟฟ้ามีขนาดใหญ่พอหากกระแสไฟฟ้าไม่เพียงพอ
(หมายเหตุ: ฉันสงสัยว่าzsh
schedule
builtin สามารถโน้มน้าวใจได้อย่างง่ายดายเพื่อส่งALRM
ตามช่วงเวลาที่กำหนดหากจำเป็น)
การกระทำ ...
nnum
... กำหนดจำนวนไฟล์บันทึกสำหรับการกระทำdir ที่ตามมา หลังจากเปลี่ยนชื่อปัจจุบันถ้าmultilog
เห็นNUMหรือไฟล์บันทึกเก่ามากขึ้นก็เอาแฟ้มบันทึกเก่าที่มีการประทับเวลาที่น้อยที่สุด NUMต้องมีอย่างน้อย 2 หมายเลขเริ่มต้นของแฟ้มบันทึกคือ 10
การกระทำ ...
!processor
... ตั้งค่าตัวประมวลผลสำหรับการกระทำdir ที่ตามมา multilog
จะเลี้ยงในปัจจุบันผ่านการประมวลผลและบันทึกการส่งออกเป็นไฟล์บันทึกเก่าแทนปัจจุบัน multilog
จะบันทึกเอาต์พุตใด ๆ ที่ตัวประมวลผลเขียนไปยัง descriptor 5 และทำให้เอาต์พุตนั้นสามารถอ่านได้บน descriptor 4 เมื่อรันตัวประมวลผลในไฟล์บันทึกถัดไป เพื่อความน่าเชื่อถือโปรเซสเซอร์ต้องออกจากศูนย์ถ้ามีปัญหาในการสร้างผลลัพธ์ multilog
จะเรียกใช้อีกครั้ง โปรดทราบว่าการทำงานประมวลผลอาจปิดกั้นการป้อนโปรแกรมการให้อาหารใด ๆ multilog
ที่จะ