日志保留指定行数

有时 shell 脚本需要把运行结果写入 log,但又不能不限制,于是这个限制最新行数的脚本诞生了

#!/bin/sh

while true; do
    row_number=$(sed -n '$=' /var/log/hddstatus.log)
    #row_number=$(grep -c "" /var/log/hddstatus.log)
    delete_rows=$(expr $row_number - 500)
    if [ $row_number -gt 500 ]; then
        sed -i "1,${delete_rows}d" /var/log/hddstatus.log
    fi
    echo $(echo '[' && date "+%Y-%m-%d %H:%M:%S" && echo ']' && hdparm -C /dev/sdb) >>/var/log/hddstatus.log
    sleep 360
done

添加新评论