在linux中截断日志文件后,新创建的文件中填充了许多\ 0

时间:2015-01-28 01:56:36

标签: linux shell

首先,我将给出shell代码:

#!/bin/bash
filename=$1
if [ -e $filename ] ; then
    yesterday=`date -d yesterday +%Y%m%d`

    cp $filename $filename.$yesterday
    now=`date '+%Y-%m-%d%H:%M:%S'`
    echo "========split log at $now========" > $filename
    echo "========split log $filename to $filename.$yesterday  at $now========"
else
    echo "$filename not exist."
fi

shell运行成功,并将字符串========split log at $now========打印到新创建的$filename。但是在此字符串下方,\0的许多字节也会写入$filename ,如下所示:

我的声望得分低于10,我无法发布图片,所以我给出了图片的链接:http://i.stack.imgur.com/QF0F2.jpg

1 个答案:

答案 0 :(得分:1)

我编写了shell代码,旨在截断nohup创建的日志文件。 我的start命令的原始命令如下:nohup $cmd > $logPath 2>&1 &, 现在我将其更改为nohup $cmd >> $logPath 2>&1 &。有人告诉我,当使用>模式时,日志编写器程序会记住当前日志的位置,并在截断日志后,程序将继续该位置。