统计分析程序常常需要将线上的日志文件传输到某个地方进行统计,其中很多都是用rsync进行传输。
然而rsync传输文件,文件校验是比较耗cpu的操作,如果多个客户端同时向一台服务器传文件,可能造成服务器cpu负荷过重。
针对日志文件的特点,一般只是在文件末尾追加内容,这样可以用rsync 的 --append参数,将极大的减少cpu负荷。
PARA=" -at --append --progress "
RSYNCMOD="rsync模块"
rsync_file()
{
F=$1
IP=$2
DDIR=$3
echo "开始拿取${IP}的日志"
#先检查文件是否存在
RESULT=` /usr/local/bin/rsync --list-only $IP::$RSYNCMOD | grep $F `
if [ "$RESULT" = "" ] ; then
#文件不存在
echo "${IP}上文件${F}不存在"
else
#文件存在
/usr/local/bin/rsync $PARA $IP::$RSYNCMOD/$F $DESDIR/$DDIR/$F
fi
}