是这样的,echo写一个日志文件,内容如下形式
C/C++ code
exec at 2012-07-23 11:11:43
exec at 2012-07-23 11:11:43
exec at 2012-07-23 11:12:43
exec at 2012-07-23 11:13:43
考虑到日志文件大了后超出物理盘的容量。
希望写入日志时超过一定的记录条数后,新写入的覆盖掉前面时间最早最老的记录
请问用shell 编程怎么实现?
删除最前面一行,然后追加就够了。假设最大的文件行数是20行,每隔2s向文件写入一行信息。
Python code#!/bin/bash
LINE=20
LOG_FILE="log.txt"
if [ ! -e $LOG_FILE ]
then
touch $LOG_FILE
fi
while true
do
line=`wc -l $LOG_FILE | awk '{print $1}'`
echo $line
if [ $line -ge $LINE ]
then
sed -i '1d' $LOG_FILE
echo exec at `date` >> $LOG_FILE
else
echo exec at `date` >> $LOG_FILE
fi
sleep 2
done