一、背景:
今天发现一个几十M的文件,head -10竟然好长时间没有出结果,这个文件做了什么操作呢
1.tcp持续对文件输入
tcpdump -i any -s 0 -l -w - dst port 3306 | strings > a.log
2.一小时清空一次文件
echo '' > a.log
二、现象
echo操作之后
# 发现文件大小确实为空
du -h a.log
# 发现文件大小没有变为空,很大
ll -h a.log
三、解释
这个现象很奇怪,和同事讨论了一阵,觉得是 > 这种输出到文件的时候,指针一直在增长,echo操作虽然把文件置为空了,但并没有把该文件的指针也放到最前边,所以ll查看才会越来越大。目前我也不清楚这种解释对不对,先记录下
四、解决
# 改成如下写法 > 变成 >>
tcpdump -i any -s 0 -l -w - dst port 3306 | strings >> a.log