rsync脚本优化,以及遇到的些问题

服务器的gs会每分钟生成一个日志,最后有一个5分钟的定时任务,将符合条件的日志汇总成一个文件,然后通过rsync传送过去。

台湾版本由于网络问题,存在一些漏报和重复的问题。

网络问题主要有丢包(ping的时候有很多丢包)和其它网络不稳定问题,比如说有的时候快,有的时候就不行。

之前国内的方案是5分钟调用一次,将生产的数据汇总成一个文件,然后rsync过去。整个过程很快,不会存在网络超时等其他问题。

但是台湾就不一样了,由于已经采用了中转机,没有更好的解决方案了。于是只能修改脚本来实现需求。


故改成如下的传送方式(优化脚本)

1.日志正常生成,然后将汇总那个文件放到一个目录中。

2.每次遍历这个目录,如果有上次生成的汇总文件,也尝试rsync一次。

3.如果一直超时,那么总有网络好的时候,会将目录中的汇总文件上报过去

4.如果上报成功,那么就将这个文件移动到备份目录中去


# 遍历文件夹内的所有文件,发送成功一个删一个
ls $rsyncDir > $tempConsumeLogs/rsyncFiles.txt
cat $tempConsumeLogs/rsyncFiles.txt | while read Line
do
{
    name=$Line
    echo "begin send log file: $name"
    cd ..; cd scripts
    /usr/bin/rsync -avzur --progress --password-file=${work_home}/${rsync_key}  ${rsyncDir}/${name}  ${rsyncuser}@$ip_addr::${modename}
    [ $? -eq 0 ] && echo "send $name success !!!!" && mv $rsyncDir/$name $backup_send  #如果发送成功,那么就备份下,否则还在那个目录中
}
done


遇到的问题:rsync: getcwd(): No such file or directory (2)

begin send log file: 2017-12-21-15-15-01-10001_2386574184.log
===/home..tempConsumeLogs/rsyncDir/2017-12-21-15-15-01-10001_2386574184.log 
rsync: getcwd(): No such file or directory (2)
rsync error: errors selecting input/output files, dirs (code 3) at util.c(1042) [Receiver=3.1.0]

为啥会出现这样的问题?

是由于之前机器上本身之前跑了很多rsync进程(脚本写的,5分钟就开一个,结果都没跑完就都卡主了),还有很多目录,也都删掉和kill掉了。

解决方案:切换下目录就好了

cd ..; cd scripts

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值