首页 > 其他分享 >利用 inotifywait 实现自动增量文件拷贝

利用 inotifywait 实现自动增量文件拷贝

时间:2023-06-15 15:32:24浏览次数:36  
标签:src inotifywait dest rpath echo file 增量 拷贝 create


#!/bin/bash
src=/www/wwwroot/site0/images/
dest=/www/wwwroot/site1/images/
tool=/user/bin/mytool

inotifywait -mrq  --format '%w%f' -e create $src |  while read file
do
      sleep 1  # 从 create 到写好,有一个过程,等一下更安全
      
      rpath=$dest/${file:26}  # 26 是 src 的字符串长度

      echo "create file $rpath"

      if test -d $file ; then
          mkdir $rpath
          echo "create $rpath"
      else
        cp $file $rpath
        $tool $rpath >>  /tmp/image_sync.log 2>&1
        echo "cp and process $rpath"
      fi
      echo "`date`  ${file} => ${rpath}" >> /tmp/image_sync.log 2>&1
done

监控 src 目录,出现新文件时立即复制到 dest 目录并使用 mytool 工具处理目标文件。

应用场景:

  1. src 目录的文件增量拷贝到 dest 目录并加密。
  2. 对 src 目录进行自动同步到远程机器


标签:src,inotifywait,dest,rpath,echo,file,增量,拷贝,create
From: https://blog.51cto.com/u_16162111/6492775

相关文章

  • c#用表达式树实现深拷贝功能
    因为对表达式树有点兴趣,出于练手的目的,试着写了一个深拷贝的工具库。支持.netstandard2.0或.netframework4.5及以上。GitHub地址https://github.com/blurhkh/DeepCopiernuget地址https://www.nuget.org/packages/DeepCopier使用方法如下:首先创建几个测试用的类型pub......
  • 深浅拷贝、第三方模块的下载与安装、开发流程
    深浅拷贝详解1.对于不可变对象,深拷贝和浅拷贝的效果是一样的,因为不可变对象不需要在内存中复制2.对于可变对象,深拷贝和浅拷贝的效果是有区别的,主要原因在于可变对象自身的可变性质浅拷贝1.1使用数据类型本身的构造器list1=[1,2,3]list2=list(list1)print(list2)pri......
  • hfile通过bulkload拷贝到hbase方式---TODO待整理
      参考链接: http://www.ithao123.cn/content-101658.html hbase之bulkload的主要类LoadIncrementalHFiles  http://www.thinksaas.cn/group/topic/233674/ bulkload执行mv和cp的区别 使用LoadIncrementalHFiles装载HFILE到HBASE的一点心得  : 数据入HBASE一般有......
  • 多个文件拷贝到一个文件命令
    cp-rcssjsimgindex.htmlcolumn/ 选项作用-f 若目标文件已存在,则强行覆盖原文件-i 若目标文件已存在,则询问是否覆盖-p 保留源文件/目录的所有属性-r 递归复制文件和目录-d 当复制符号连接时,则目标文件也是符号连接,且与源符号链接指向相同-l 创建源文件的硬连......
  • 14.拷贝构造函数、静态、友元和预编译头
    拷贝构造函数静态友元预编译头拷贝构造函数eg:Playeer.h代码:#pragmaonceclassPlayeer{private:intnum;char*name;public:Playeer(intx,constchar*name);~Playeer();voiddisplay();//输出结果voidsetX(intx);//......
  • C ++ 拷贝构造函数和赋值构造函数 非常经典
    C++拷贝构造函数赋值构造函数拷贝构造函数和赋值构造函数的异同由于并非所有的对象都会使用拷贝构造函数和赋值函数,程序员可能对这两个函数有些轻视。请先记住以下的警告,在阅读正文时就会多心:如果不主动编写拷贝构造函数和赋值函数,编译器将以“位拷贝”的方式自动生成缺省的函数......
  • Java NIO原理 (Selector、Channel、Buffer、零拷贝、IO多路复用)
    系列文章目录和关于我零丶背景最近有很多想学的,像netty的使用、原理源码,但是苦于自己对于操作系统和nio了解不多,有点无从下手,遂学习之。一丶网络io的过程上图粗略描述了网络io的过程,了解其中的拷贝过程有利于我们理解非阻塞io,以及IO多路复用的必要性。数据从网卡到内核缓......
  • PID控制算法:位置式PID & 增量式PID
    前面的文章已经介绍过什么是pid了,现在再回顾一下:PID:是过程控制中常用的一种针对某个对象或者参数进行自动控制的一种算法。这一篇分享不打算再深究pid的理论知识,如果有不懂或者对pid感兴趣的朋友,可以自行查阅资料,或者看我前面的文章。这次分享一下pid算法的常见实现和流程。主要简......
  • 【Python查漏补缺(二)】正则表达式与深浅拷贝
    在开始正题之前讲一下打开文件的另一种方式。之前打开文件的方式f=open("文件路径","文件打开方式",encoding="utf8")模式描述r以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。rb以二进制格式打开一个文件用于只读。文件指针将会放在文件的开......
  • 架构师如何最大化自己的增量价值
    有的架构师不关注软件之外的事情,比如很少关心公司或部门的收入。这种性格虽然可以让他专注于软件工作,但从长期来看,如果不去思考如何通过技术为公司创造商业价值,那就很难保持或扩大自己在团队的影响力,职业发展也可能受挫。你可能听说过“在小数据里看大机会,在大数据里看小机会”这句......