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