我使用crontab同步一个文件夹时,发现一个问题,我在crontab中设置的1分钟运行一次.但当那个文件夹的内容改变时。1分钟不一定能同步完,但这时第二个rsync进行又起来了。

这个就产生一个问题,二个rsync一起处理相同的文件,这样会出问题。如下

1 * * * * /usr/bin/rsync -avlR /data/files    172.16.xxx.xxx:/data

本来想写个脚本来解决,但太麻烦。所以用了个linux下的锁。。呵呵,象下面这个.

1 * * * * flock -xn /var/run/rsync.lock -c "rsync -avlR /data/files    172.16.xxx.xxx:/data"

这样,使用flock的-x参数先建一个锁文件,然后-n指定,如果锁存在,就等待。直到建成功锁在会运行-c后面的命令。这样第一个进程没有运行完前,锁文件都会存在。这样就不会二个rsync同时并发处理一个东西了

flock防止重复rsync的更多相关文章

  1. shell脚本选择LOG里面特定的行,生成新文件并rsync上传

    rsync.sh #!/bin/bash tool_path=$(cd `dirname $`; pwd) eval `cat ${tool_path}/conf.properties` rsync_ ...

  2. linux使用flock文件锁

    使用linux flock 文件锁实现任务锁定,解决冲突 格式: flock [-sxun][-w #] fd# flock [-sxon][-w #] file [-c] command flock ...

  3. flock文件锁的学习和应用

    flock文件锁 学习与应用  2016-9-20 作用: 可以使用flock文件锁,避免指定命令的同时执行.(实现任务锁定,解决冲突) 用法: # flock -xn /opt/lock_file ...

  4. shell脚本遍历子目录

    #!/bin/bashsource /etc/profile tool_path=/data/rsync_clientroot_path=/data/log ####yyyy-mm-dd¸ñʽdat ...

  5. linux下简单的备份的脚本 2 【转】

    转自:http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=26807463&id=4577034 之前写过linux下简单的 ...

  6. linux-flock文件锁之实际运用

    vi test.sh #! /bin/bash echo "Hello World" touch test.lock #随便命名 [root@localhost ~]# flock ...

  7. Linux-flock文件锁的使用

    在多个进程同时操作同一份文件的过程中,很容易导致文件中的数据混乱,需要锁操作来保证数据的完整性,这里介绍的针对文件的锁,称之为“文件锁”-flock. flock,建议性锁,不具备强制性.一个进程使用 ...

  8. Kafka集群---分布式消息系统

    概念: kafka是一种消息中间件 作用: 解耦.冗余.提高扩展性.缓冲 保证顺序.灵活.削峰填谷 异步通信 kafla角色 producer: 生产者,负责发布消息 consumer: 消费者,负责 ...

  9. 用flock命令解决Linux计划任务重复执行

    在做计划任务的时候,可能由于某些问题,任务没有执行完成,导致任务重复的运行,解决这个问题,只需要一个flock命令就可以了. flock --helpflock (util-linux-ng 2.17 ...

随机推荐

  1. Redis 笔记与总结4 set 和 zset 类型

    (一)set 类型 set 是集合是 string 类型的无序集合. set 元素最大可以包含(2 的 32 次方)个元素.set 的是通过 hash table 实现的,所以添加.删除和查找的复杂度 ...

  2. Javascript 笔记与总结(1-2)词法分析

    词法分析,按顺序分析 3 样: 第 1 步:先分析参数 第 2 步:再分析变量声明 第 3 步:再分析函数声明 一个函数能使用的局部变量,就从上面 3 步分析而来. 具体步骤: 0:函数运行前的瞬间, ...

  3. Pull解析器学习

    1, package com.service; import java.io.InputStream; import java.io.OutputStream; import java.util.Ar ...

  4. JQ+rotate插件实现图片旋转,兼容IE7+ \ CHROME等浏览器

    插件:/jquery.rotate.min.js CODE: <!DOCTYPE html> <html> <head> <meta charset=&quo ...

  5. notepad++ gvim editplus 三款选择试用

    notepad++开源  试用还不错  但默认不会识别语法高亮  要自己设置  比较烦 gvim 在XP下竟然无法返回命令行  百般折腾无奈放弃 editplus 自带资源栏  选择器  文件查找功能 ...

  6. 利用EXCEL表实现网页数据采集到MYSQL数据库

    先复制页面表格数据到EXCEL中,比如 2012-1-4 52.7 52.7 49 48.83 190007 9506968 2012-1-5 48.86 49.79 45.72 45.6 62325 ...

  7. 【转载】wireshark抓包

    两种过滤器 捕捉过滤器:用于决定将什么样的信息记录在捕捉结果中.需要在开始捕捉前设置显示过滤器:在捕捉结果中进行详细查找.他们可以在得到捕捉结果后随意修改 1.捕捉过滤器   语法实例: tcp ds ...

  8. Centos tar命令

    打包文件同时压缩 tar -zcvf /file.tar.gz /directoryname

  9. node socket onmessage

    <script src="//cdn.sockjs.org/sockjs-0.3.min.js"></script> <script> var ...

  10. Java内存管理和垃圾回收

    笔记,深入理解java虚拟机 Java运行时内存区域 程序计数器,线程独占,当前线程所执行的字节码的行号指示器,每个线程需要记录下执行到哪儿了,下次调度的时候可以继续执行,这个区是唯一不会发生oom的 ...