CN106919574A - 一种实时处理远程同步文件的方法 - Google Patents

一种实时处理远程同步文件的方法 Download PDF

Info

Publication number
CN106919574A
CN106919574A CN201510988052.9A CN201510988052A CN106919574A CN 106919574 A CN106919574 A CN 106919574A CN 201510988052 A CN201510988052 A CN 201510988052A CN 106919574 A CN106919574 A CN 106919574A
Authority
CN
China
Prior art keywords
file
message
specified
destination folder
real
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201510988052.9A
Other languages
English (en)
Other versions
CN106919574B (zh
Inventor
江满华
杨望仙
范小朋
张帆
须成忠
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
HANGZHOU ZHONGKE ADVANCED TECHNOLOGY RESEARCH INSTITUTE Co.,Ltd.
Original Assignee
Shenzhen Institute of Advanced Technology of CAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Institute of Advanced Technology of CAS filed Critical Shenzhen Institute of Advanced Technology of CAS
Priority to CN201510988052.9A priority Critical patent/CN106919574B/zh
Publication of CN106919574A publication Critical patent/CN106919574A/zh
Application granted granted Critical
Publication of CN106919574B publication Critical patent/CN106919574B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/1734Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/178Techniques for file synchronisation in file systems
    • G06F16/1787Details of non-transparently synchronising file systems

Abstract

本发明提供了一种实时处理远程同步文件的方法,所述方法包括如下步骤:从远程主机同步文件到指定目标文件夹;对所述目标文件夹进行文件操作监控;对目标监控行为进行检查,如检查出被操作文件符合要求的,将文件路径作为消息发送到消息系统;多个文件处理实例从消息系统获取消息,所述消息包括:文件路径,执行具体的文件处理操作。本发明提供的技术方案具有较高地效率完成了消息分发和文件处理的任务的优点。

Description

一种实时处理远程同步文件的方法
技术领域
本发明涉及通信领域,尤其涉及一种实时处理远程同步文件的方法及系统。
背景技术
为了分析用户偏好以进行营销等,需要使用大量的用户行为数据,目前在公交车、购物中心、广场等公共场所一般安装WIFI设备,提供免费上网入口,从而得到用户行为数据。尽管单台移动上网设备接入到WIFI设备产生的数据量不大,但在人流量大的公共场所,接入的移动上网设备多,导致需要处理的数据量也日益增加。因为WIFI设备不仅要为接入的移动上网设备提供上网冲浪服务,还要上传用户行为日志记录,如果将WIFI设备采集到的数据直接上传到服务器,会对WIFI设备的网络带宽有很高的要求,对于使用移动网络提供上网服务的WIFI设备而言,可用的带宽资源就更加窘迫,为了能够减少数据传输所需的带宽和消耗的流量,提高数据上传的速度,一般会在数据上传之前对数据进行压缩打包处理。对数据压缩打包解决了数据传输的问题,但引来了新的问题。为了使用这些数据,需要对压缩文件进行解压以及相关的预处理,而为了提高数据的实时性,一般数据压缩上传的间隔设定比较短,如5分钟,使得产生了大量需要待处理的压缩文件。
现有的常用方案是等待当天文件传输完毕后,启动离线批处理的程序对全部文件进行一次性解压,这种方法简单,且无需做其他的特殊处理,但受到网络的限制,等待文件同步完成常需要较长的时间,而这个时间点不可预知。等待所有文件传输完毕才能执行操作,这使得数据利用有较大的时延;另一种方法是每间隔一段时间查找获得当前目录下的文件列表,对比上一时间扫描得到的文件列表,对新增的文件进行解压,当文件数量较少时,该方法可以做到接近实时,设置的关键在于间隔时长,但随时间推移,文件数量增加,扫描的时间增长,对比需要花费的时间也随之增加,使得检测新增文件消耗不少资源。
目前现有技术提供的方法是等待文件传输完毕执行离线批处理或者通过间断扫描目标目录对检测到的新文件进行处理。前者是一种较为直接的方法,但只适合于对实时需求不高,且离线批处理性能较优时使用。后者提供了一个接近实时的处理方法,但其伴随产生了额外不断增长的资源消耗。
发明内容
提供一种实时处理远程同步文件的方法,其解决了现有技术的无法实时处理文件以及增加额外的资源消耗的缺点。
一方面,提供一种实时处理远程同步文件的方法,所述方法包括如下步骤:
从远程主机同步文件到指定目标文件夹;
对所述目标文件夹进行文件操作监控;
对目标监控行为进行检查,如检查出被操作文件符合要求的,将文件路径作为消息发送到消息系统;
多个文件处理实例从消息系统获取消息,所述消息包括:文件路径,执行具体的文件处理操作。
可选的,所述从远程主机同步到指定目标文件夹具体,包括:
使用Linux系统上的远程同步命令rsync将所述远程主机同步到指定目标文件夹。
可选的,所述对所述目标文件夹进行文件操作监控具体,包括:
使用基于Linux系统上inotify功能开发的python库pyinotify对所述目标文件进行操作监控。
可选的,所述从远程主机同步到指定目标文件夹具体,包括:
将每天的数据分别同步到对应的指定目标文件夹。
可选的,所述方法还包括:将日期作为主题,将该主题划分成多个分块。
可选的,所述多个文件处理实例从消息系统获取消息具体,包括:
使用多个进程从所述消息系统的一个主题的不同分块获取消息。
可选的,所述对目标监控行为进行检查,如检查出被操作文件符合要求的,将文件路径作为消息发送到消息系统具体,包括:
实时将被监控文件夹内的文件操作进行条件判断,将符合目标要求的操作记录的文件路径发送到消息系统。
可选的,所述执行具体的文件处理操作具体,包括:
使用并行算法执行具体的文件处理操作。
本发明具体实施方式提供的技术方案从数据流架构上实现了数据流的隔离划分、从多个层次提高数据处理的并行化、解决数据处理速度慢导致消息队列溢出的问题,以较高地效率完成了消息分发和文件处理的任务。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的一种实时处理远程同步文件的方法的流程图;
图2为本发明提供的文件操作的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参阅图1,图1为本发明第一较佳实施方式提供的一种实时处理远程同步文件的方法,该方法由数据处理服务器完成,该数据处理服务器可以为如计算机、服务器等具有逻辑处理功能的设备,该方法如图1所示,包括如下步骤:
步骤S101、从远程主机同步到指定目标文件夹;
步骤S101的实现方法具体可以包括:使用Linux系统上的远程同步命令rsync实现数据接收服务器(即远程主机)和数据处理服务器的文件同步功能。
参照图2,在同步过程中,rsync的文件操作的方法如图2所示,包括如下步骤:
步骤S201、创建临时文件;
步骤S202、打开临时文件;
步骤S203、向临时文件写入;
步骤S204、关闭临时文件;
步骤S205、修改临时文件属性;
步骤S206、重命名临时文件(即移动临时文件)。
上述图2中各个步骤的实现方法可以参见Linux系统上远程同步命令rsync的介绍,这里不再赘述。
步骤S102、对目标文件夹进行文件操作监控;
上述步骤S103的实现方法具体可以为:
文件监控功能使用基于Linux系统上inotify功能开发的python库pyinotify,根据如图2所示的描述,单个文件同步完成的标志是文件移动(临时文件重命名为目标文件)指定监控的文件夹后,对于文件的移动操作会触发自定义的函数,对文件进行处理,对于文件夹同步,可以实现自动将子目录下的文件夹自动添加到监控文件夹列表中。由于文件处理速度一般比文件同步速度慢,随着时间的推移,待处理的文件队列很快就会溢出,因此本发明在处理函数中并不执行实质的处理操作,而是将文件路径发送到消息系统。
S103、对目标监控行为进行检查,如检查出被操作文件符合要求的,将文件路径作为消息发送到消息系统。
上述步骤S103的实现方法具体可以为,消息系统功能使用Kafka作为文件路径的缓存,对远程同步文件夹进行文件操作监控。具体为,文件监控功能使用基于Linux系统上inotify功能开发的python库pyinotify,根据所述S101中的描述,单个文件同步完成的标志是文件移动(临时文件重命名为目标文件)。指定监控的文件夹后,对于文件的移动操作会触发自定义的函数,对文件进行处理。对于文件夹同步,可以实现自动将子目录下的文件夹自动添加到监控文件夹列表中。由于文件处理速度一般比文件同步速度慢,随着时间的推移,待处理的文件队列很快就会溢出,因此本发明在处理函数中并不执行实质的处理操作,而是将文件路径发送到消息系统。Kafka有主题、分块、生产者、消费者等概念:一个主题是消息发布到的一个类别或订阅名称;一个主题可以划分为多个分区,每个分区是一个不断被追加的有序的消息序列;生产者负责将消息发布到自定义的主题中,包括选择哪个消息分配给话题内的哪个分区;消费者负责从指定的主题和分块获取消息。
为了便于维护和解除数据的耦合,以日期作为话题,文件监控模块作为生产者,每天对监控到的文件路径发布到消息系统,提供作为消费者的程序获取。为了提高文件的处理速度,考虑到Python的多线程的限制,本发明使用多进程对文件流处理,为此在消息系统中提高了话题的分块数量,每个处理文件的进程对接话题的一个分块。
步骤S104、多个文件处理实例从消息系统获取消息(即待处理文件的路径),执行具体处理操作。
上述步骤S104的实现方法具体可以为,文件处理的具体功能依照实际应用需求,本发明实际应用的一个例子是对压缩文件解压,同时在解压出的文本的行末添加文件名信息,并根据数据的类型分类,由于对文件的处理流程一致,在Python实现时可根据需要调用multiprocessing模块,提高文件处理的并行度。
本发明具体实施方式提供的技术方案从数据流架构上实现了数据流的隔离划分、从多个层次提高数据处理的并行化、解决数据处理速度慢导致消息队列溢出的问题,以较高地效率完成了消息分发和文件处理的任务。
可选的,上述从远程主机同步到指定目标文件夹具体,包括:
将每天的数据分别同步到对应的指定目标文件夹。即以日期划分,每天的数据分别同步到指定的目标文件夹,这样能降低数据的耦合度,便于调试和应对故障恢复。
可选的,上述方法还包括:将日期作为主题,将该主题划分成多个分块。
可选的,上述多个文件处理实例从消息系统获取消息具体,包括:
使用多个进程从所述消息系统的一个主题的不同分块获取消息。
可选的,上述对目标监控行为进行检查,如检查出被操作文件符合要求的,将文件路径作为消息发送到消息系统具体,包括:
实时将被监控文件夹内的文件操作进行条件判断,将符合目标要求的操作记录的文件路径发送到消息系统。
可选的,上述执行具体的文件处理操作具体,包括:
使用并行算法执行具体的文件处理操作。使得上述方案实现多级并行化,提高处理效率的机制。
需要说明的是,对于前述的各方法实施方式或实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为根据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述实施方式或实施例均属于优选实施例,所涉及的动作和单元并不一定是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。
本发明实施例装置中的单元可以根据实际需要进行合并、划分和删减。本领域的技术人员可以将本说明书中描述的不同实施例以及不同实施例的特征进行结合或组合。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可以用硬件实现,或固件实现,或它们的组合方式来实现。当使用软件实现时,可以将上述功能存储在计算机可读介质中或作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是计算机能够存取的任何可用介质。以此为例但不限于:计算机可读介质可以包括随机存取存储器(Random Access Memory,RAM)、只读存储器(Read-Only Memory,ROM)、电可擦可编程只读存储器(Electrically ErasableProgrammable Read-Only Memory,EEPROM)、只读光盘(Compact Disc Read-OnlyMemory,CD-ROM)或其他光盘存储、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质。此外。任何连接可以适当的成为计算机可读介质。例如,如果软件是使用同轴电缆、光纤光缆、双绞线、数字用户线(Digital SubscriberLine,DSL)或者诸如红外线、无线电和微波之类的无线技术从网站、服务器或者其他远程源传输的,那么同轴电缆、光纤光缆、双绞线、DSL或者诸如红外线、无线和微波之类的无线技术包括在所属介质的定影中。如本发明所使用的,盘(Disk)和碟(disc)包括压缩光碟(CD)、激光碟、光碟、数字通用光碟(DVD)、软盘和蓝光光碟,其中盘通常磁性的复制数据,而碟则用激光来光学的复制数据。上面的组合也应当包括在计算机可读介质的保护范围之内。
总之,以上所述仅为本发明技术方案的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (8)

1.一种实时处理远程同步文件的方法,其特征在于,所述方法包括如下步骤:
从远程主机同步文件到指定目标文件夹;
对所述目标文件夹进行文件操作监控;
对目标监控行为进行检查,如检查出被操作文件符合要求的,将文件路径作为消息发送到消息系统;
多个文件处理实例从消息系统获取消息,所述消息包括:文件路径,执行具体的文件处理操作。
2.根据权利要求1所述的方法,其特征在于,所述从远程主机同步文件到指定目标文件夹具体,包括:
使用Linux系统上的远程同步命令rsync将所述远程主机文件同步到指定目标文件夹。
3.根据权利要求1所述的方法,其特征在于,所述对所述目标文件夹进行文件操作监控具体,包括:
使用基于Linux系统上inotify功能开发的python库pyinotify对所述目标文件进行文件操作监控。
4.根据权利要求1所述的方法,其特征在于,所述从远程主机同步文件到指定目标文件夹具体,包括:
将每天的数据分别同步到对应的指定目标文件夹。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:将日期作为主题,将该主题划分成多个分块。
6.根据权利要求5所述的方法,其特征在于,所述多个文件处理实例从消息系统获取消息具体,包括:
使用多个进程从所述消息系统的一个主题的不同分块获取消息。
7.根据权利要求1所述的方法,其特征在于,所述对目标监控行为进行检查,如检查出被操作文件符合要求的,将文件路径作为消息发送到消息系统具体,包括:
实时将被监控文件夹内的文件操作进行条件判断,将符合目标要求的操作记录的文件路径发送到消息系统。
8.根据权利要求1所述的方法,其特征在于,所述执行具体的文件处理操作具体,包括:
使用并行算法执行具体的文件处理操作。
CN201510988052.9A 2015-12-24 2015-12-24 一种实时处理远程同步文件的方法 Active CN106919574B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510988052.9A CN106919574B (zh) 2015-12-24 2015-12-24 一种实时处理远程同步文件的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510988052.9A CN106919574B (zh) 2015-12-24 2015-12-24 一种实时处理远程同步文件的方法

Publications (2)

Publication Number Publication Date
CN106919574A true CN106919574A (zh) 2017-07-04
CN106919574B CN106919574B (zh) 2021-06-15

Family

ID=59456650

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510988052.9A Active CN106919574B (zh) 2015-12-24 2015-12-24 一种实时处理远程同步文件的方法

Country Status (1)

Country Link
CN (1) CN106919574B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108762986A (zh) * 2018-05-24 2018-11-06 四川斐讯信息技术有限公司 一种防止异常断电导致配置丢失的方法及系统
CN110120983A (zh) * 2019-06-14 2019-08-13 浪潮软件集团有限公司 基于inotify和rsync自动化安装部署实现SVN实时同步备份的方法和系统
CN114756628A (zh) * 2022-06-16 2022-07-15 天津七一二移动通信有限公司 一种高复用可扩展的数据及文件同步的方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102223378A (zh) * 2011-06-28 2011-10-19 北京新媒传信科技有限公司 一种文件同步方法和系统
CN102609333A (zh) * 2011-11-25 2012-07-25 无锡华御信息技术有限公司 一种加密环境中保证文件备份完整性的系统及方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102223378A (zh) * 2011-06-28 2011-10-19 北京新媒传信科技有限公司 一种文件同步方法和系统
CN102609333A (zh) * 2011-11-25 2012-07-25 无锡华御信息技术有限公司 一种加密环境中保证文件备份完整性的系统及方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
刘斌: "基于Linux的文件实时备份系统设计与实现", 《中国优秀硕士学位论文全文数据库信息科技辑》 *
李贞: "基于Rsync算法的远程文件同步系统的设计与实现", 《中国优秀硕士学位论文全文数据库信息科技辑》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108762986A (zh) * 2018-05-24 2018-11-06 四川斐讯信息技术有限公司 一种防止异常断电导致配置丢失的方法及系统
CN110120983A (zh) * 2019-06-14 2019-08-13 浪潮软件集团有限公司 基于inotify和rsync自动化安装部署实现SVN实时同步备份的方法和系统
CN114756628A (zh) * 2022-06-16 2022-07-15 天津七一二移动通信有限公司 一种高复用可扩展的数据及文件同步的方法
CN114756628B (zh) * 2022-06-16 2022-10-28 天津七一二移动通信有限公司 一种高复用可扩展的数据及文件同步的方法

Also Published As

Publication number Publication date
CN106919574B (zh) 2021-06-15

Similar Documents

Publication Publication Date Title
US9420068B1 (en) Log streaming facilities for computing applications
US20120117271A1 (en) Synchronization of Data in a Distributed Computing Environment
CN107317838B (zh) 一种基于流式数据处理架构的天文元数据归档方法及系统
CN110505495B (zh) 多媒体资源抽帧方法、装置、服务器及存储介质
CN103501241B (zh) 垃圾文件清理方法、装置和系统
CN110019263B (zh) 信息存储方法和装置
CN103596016B (zh) 一种多媒体视频数据处理方法和装置
CN106919574A (zh) 一种实时处理远程同步文件的方法
CN105357280B (zh) 一种基于hdfs的文件溯源ftp系统
CA2725017A1 (en) Email auto-filing and management
CN103995807A (zh) 一种基于Web架构下海量数据查询和二次处理的方法
CN109190025A (zh) 信息监控方法、装置、系统和计算机可读存储介质
CN104462096A (zh) 舆情监测分析方法和装置
CN102222112B (zh) 资源管理装置和资源管理方法
CN103324639A (zh) 清理垃圾项目的方法及装置
CN112597348A (zh) 一种大数据存储优化的方法及装置
CN112883011A (zh) 实时数据处理方法和装置
CN102932421A (zh) 云备份方法及装置
CN104182470B (zh) 一种基于svm的移动终端应用分类系统和方法
CN103092988A (zh) 一种直接在桌面管理手机媒体资源的实现方法
CN103297477A (zh) 一种数据采集上报系统及数据处理方法和代理服务器
CN106257447A (zh) 云存储服务器的视频存储及检索方法、视频云存储系统
CN117332134A (zh) 遥感卫星原始数据处理和管理方法、装置、设备及介质
CN105488166A (zh) 一种索引建立方法及装置
CN112910855B (zh) 一种样例报文处理方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20200131

Address after: Office building of Shenzhen Institute of advanced technology A-207 518000 in Guangdong city of Shenzhen province Nanshan District City Road No. 1068 Chinese Academy of Shenzhen University Academy of Sciences

Applicant after: Shenzhen advanced science and technology Cci Capital Ltd

Address before: 1068 No. 518055 Guangdong city in Shenzhen Province, Nanshan District City Xili University School Avenue

Applicant before: SHENZHEN INSTITUTES OF ADVANCED TECHNOLOGY CHINESE ACADEMY OF SCIENCES

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20200715

Address after: 12 / F, building 5, Haiju center, Qiantang New District, Hangzhou City, Zhejiang Province

Applicant after: HANGZHOU ZHONGKE ADVANCED TECHNOLOGY RESEARCH INSTITUTE Co.,Ltd.

Address before: Office building of Shenzhen Institute of advanced technology A-207 518000 in Guangdong city of Shenzhen province Nanshan District City Road No. 1068 Chinese Academy of Shenzhen University Academy of Sciences

Applicant before: Shenzhen advanced science and technology Cci Capital Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant