解决flume读取文件新增出错

1:现象:
    flume抽取日志文件时,日志文件还在增加,导致读取出错
2:原因:
    1:原脚本读取网关机时,日志刚生成就被移走,同时网关已经打开文件描述符,所以后续继续向移过去的文件追加内容
    2:由于网关机服务设置最大只保留一个历史文件,且生成策略为每分钟一个文件,而linux crontab执行为最低每分钟执行
3:解决方式:
    1:vim /etc/postfix/main.cf 将配置inet_interfaces = all(可选,若/var/log/cron报错)
    2:更换log_copy.sh脚本,新增休眠3秒目的错开文件生成时间

log_copy.sh内容如下:
#!/bin/sh
sleep 3
dir='/seaapp/NettyGate/log/report/'
file_dir=`ls /seaapp/NettyGate/log/report/ |grep report.`
for tmp in $file_dir
do
    FILE_NAME=${dir}${tmp}
    a=`stat -c %Y $FILE_NAME`
    b=`date +%s`
    if [ $[ $b - $a ] -gt 2 ];then
       D=$(date +%N)
       cp $dir/$tmp "/seaapp/flume_home/bak/$tmp"
       mv $dir/$tmp "/seaapp/flume_home/log/$tmp-$D.log"
    fi
done

你可能感兴趣的:(解决flume读取文件新增出错)