Câu trả lời:
#!/bin/bash 
touch /script_logs/test.log
MaxFileSize=2048
while true
do
     sh test.sh >> /script_logs/test.log
#Get size in bytes** 
    file_size=`du -b /script_logs/test.log | tr -s '\t' ' ' | cut -d' ' -f1`
    if [ $file_size -gt $MaxFileSize ];then   
        timestamp=`date +%s`
        mv /script_logs/test.log /script_logs/test.log.$timestamp
        touch /script_logs/test.log
    fi
doneTôi đã xóa "&" vì nó có thể gây ra sự cố.
cpvà mv, tôi có thể xóa tệp nhật ký không, sau đó có phải tệp nhật ký mới có cùng tên không? (Yêu cầu của tôi là, nếu tệp nhật ký đạt đến giới hạn nhất định, tôi muốn xóa tệp nhật ký đó và sau đó tạo tệp mới )
                    >>để chắp thêm vào tệp nhật ký, >sẽ ghi đè lên nhiều lần.
                    >, tôi sẽ nhận được tail: test.log: file truncated Hello World!.... Nếu tôi sử dụng >>, tôi nhận được thông điệp tường trình chính xác, nhưng kích thước tệp đang tăng lên. Không có điều kiện kiểm tra điều kiện ... ;-(
                    sử dụng như thế nào savelog?
Nó có sẵn trong debian và RH và khá nhiều bản phân phối linux khác mà tôi biết. Đó là tập lệnh shell / bin / sh, vì vậy cũng nên chạy trên bất kỳ unix nào khác.
ví dụ trước khi viết bất cứ điều gì để test.logchạy savelog -n -c 7 test.log. Điều này sẽ giữ 7 phiên bản test.log không trống gần đây nhất. Theo mặc định, nó sẽ nén các bản ghi xoay (nhưng có thể bị vô hiệu hóa -l).
Nếu bạn cần, bạn có thể kiểm tra kích thước test.logvà chỉ savelognó nếu nó vượt quá một kích thước nhất định.
/usr/bin/savelogtập lệnh shell tại nguồn.debian.net/src/debianutils/4.7
                    savelogtrên bất kỳ hộp RHEL / CentOS 5/6 nào của mình, vì vậy tôi mới tải xuống quảng cáo và nó dường như hoạt động tốt cho nhu cầu của tôi.
                    savelognó là đổi tên tập tin nhưng sau đó mất nhiều thời gian để gzip những cái cũ trước khi hoàn thiện. Trong khi đó, nhật ký .0 đã có các mục tiếp theo trong đó. Lý tưởng nhất là thời gian giữa luân chuyển nhật ký và báo hiệu quá trình mở lại nhật ký nên tối thiểu. Tôi tắt savelogtính năng nén vì điều này.
                    Tôi đã viết một logrotee cuối tuần này. Tôi có lẽ sẽ không đọc được câu trả lời tuyệt vờimultilog của @ JdeBP .
Tôi tập trung vào nó rất nhẹ và có thể bzip2 khối đầu ra của nó như:
verbosecommand | logrotee \
  --compress "bzip2 {}" --compress-suffix .bz2 \
  /var/log/verbosecommand.logDù vậy, vẫn còn rất nhiều việc phải làm và thử nghiệm.
Vì tôi chưa thể thêm nhận xét vào câu trả lời được chấp nhận , một gợi ý BusyBox , nơi dukhông có -bcờ:
du /var/log/file | tr -s '\t' ' ' | cut -d' ' -f1