首先,我将给出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
答案 0 :(得分:1)
我编写了shell代码,旨在截断nohup创建的日志文件。
我的start命令的原始命令如下:nohup $cmd > $logPath 2>&1 &
,
现在我将其更改为nohup $cmd >> $logPath 2>&1 &
。有人告诉我,当使用>
模式时,日志编写器程序会记住当前日志的位置,并在截断日志后,程序将继续该位置。