CN109684281A - 一种动态可配置的文件替换和监控的方法和*** - Google Patents
一种动态可配置的文件替换和监控的方法和*** Download PDFInfo
- Publication number
- CN109684281A CN109684281A CN201811559594.4A CN201811559594A CN109684281A CN 109684281 A CN109684281 A CN 109684281A CN 201811559594 A CN201811559594 A CN 201811559594A CN 109684281 A CN109684281 A CN 109684281A
- Authority
- CN
- China
- Prior art keywords
- file
- rule
- substitution rules
- dynamic
- replacement module
- 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.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及一种动态可配置的文件替换监控方法和***,它包括:文件替换模块:用于将全路径文件名称、进程号和用户组这些信息和已经配置好的规则进行比较;拦截监控模块:用于监控打开文件的名称、进程号和用户组并通知所述文件替换模块打开文件事件发生;配置模块:用于对文件替换规则进行配置,并将配置好的替换规则在用户空间通过命令传递到所述文件替换模块。本发明的优点在于:能够在很多情景下部分或者完全解决现有对为数据文件进行升级、修改、调试时存在的不便,并在不修改源码的情况下能扩展原有软件的部分功能。
Description
技术领域
本发明涉及操作***中对文件进行操作的方法,尤其涉及一种动态可配置的文件替换监控方法和***。
背景技术
在一个***中,文件分为可执行文件和数据文件。由于需求在不断变化,无论可执行文件和数据文件都需要不停升级,修改,调试才能赶上需求变换和运营要求,这样原来的文件需要替换成新的文件,就是所谓的升级或修改配置。
这一个过程,在通常情况下,至少需要重启进程,在部分情况下还需要重启整个设备。对于部分嵌入式设备而言,由于存储空间宝贵,除了配置数据等极小部分区间,大部分文件***是压缩和只读的,导致这大部分文件***哪怕任何小的文件修改,都需要升级并重启整个***。这些给研发调试运营人员维护带来极大的不便,业务中断也影响了用户使用感受。
发明内容
本发明的目的在于克服现有技术的缺点,提供了一种动态可配置的文件替换监控方法和***,能够解决现有在对数据文件进行升级、修改、调试时存在的不便。
本发明的目的通过以下技术方案来实现:一种动态可配置的文件替换监控***,它包括:
文件替换模块:用于将全路径文件名称、进程号和用户组这些信息和已经配置好的规则进行比较;
拦截监控模块:用于监控打开文件的名称、进程号和用户组并通知所述文件替换模块打开文件事件发生;
配置模块:用于对文件替换规则进行配置,并将配置好的替换规则在用户空间通过命令传递到所述文件替换模块。
一种动态可配置的文件替换监控方法,它包括以下步骤:
S1、配置文件替换规则:
S2、通过命令行的方式将配置好的替换规则传递到***的文件替换模块中;
S3、通过***调用进入***调用表并按照函数路径调用函数打开文件;
S4、拦截检测调用文件名,并把进程所在的用户组信息传递到文件替换模块;
S5、文件替换模块根据预先配置好的替换规则进行匹配。
所述的文件替换规则包括无条件替换、根据用户组替换、以不同的时间段分派不同的替换规则和替换成空文件中的一种规则或者多种规则亦或者多种规则组合成的规则。
根据步骤S5文件替换模块根据预先配置好的替换规则进行匹配具体包括以下匹配结果:
A1、未发现任何匹配的规则,按照原有的处理流程处理,即打开原来的文件;
A2、发现匹配的规则,规则设置为需要做替换,替换成新的路径下的文件,为替换后的文件分配相关节点信息;
A3、发现匹配规则,规则设置为不允许打开,直接返回为空,表现结果为打开文件失败。
如果文件打开失败,则退出后续处理;如果文件打开成功,无论是否被替换后续的处理都是新文件信息结构体所指定的文件节点上操作。
还包括在内存文件***中创建一个目录,并将替换文件存放在该目录中,当符合替换规则时使用存放在该目录下的文件;以便在掉电或重启后仍然后替换功能。
本发明具有以下优点:一种动态可配置的文件替换监控方法和***,能够在很多情景下部分或者完全解决现有对为数据文件进行升级、修改、调试时存在的不便,并在不修改源码的情况下能扩展原有软件的部分功能。
附图说明
图1 为本发明方法的流程图;
图2 为本发明***的结构示意图。
具体实施方式
下面结合附图对本发明做进一步的描述,但本发明的保护范围不局限于以下所述。
如图1和图2所示,一种动态可配置的文件替换监控***,它包括:
文件替换模块:用于将全路径文件名称、进程号和用户组这些信息和已经配置好的规则进行比较;如果没有匹配规则就按原来的处理方式处理,如果有匹配规则,就按匹配规则处理;例如打开A文件,文件替换模块把A文件替换成B文件。
拦截监控模块:用于监控打开文件的名称(包含全路径或者相对路径)、进程号和用户组并通知所述文件替换模块打开文件事件发生;
配置模块:用于对文件替换规则进行若干条替换规则的配置,并将配置好的替换规则在用户空间通过命令传递到所述文件替换模块。也可以在进程运行时根据需要动态的调整配置。
一种动态可配置的文件替换监控方法,它包括以下步骤:
S1、配置文件替换规则:
S2、通过命令行的方式将配置好的替换规则传递到***的文件替换模块中;
S3、通过***调用进入***调用表并按照函数路径调用函数打开文件;
如:在linux操作***中,打开一个文件是通过***调用进入***调用表,并按照以下函数路径调用函数;
sys_open->do_sys_open->do_filp_open->path_openat->link_path_walk。
S4、这些函数参数传入了文件名(全路径或者相对路径),在上面这些函数忠辉找到一个合适的点,拦截检测调用文件名,并把进程所在的用户组信息传递到文件替换模块;
S5、文件替换模块根据预先配置好的替换规则进行匹配。
所述的文件替换规则包括无条件替换、根据用户组替换、以不同的时间段分派不同的替换规则和替换成空文件中的一种规则或者多种规则亦或者多种规则组合成的规则。
优选地,无条件替换:例如临时替换原***中的busybox,旧的busybox位于/bin/busybox,当打开busybox文件时,配置规则,实际打开位于/var/apps/busybox,这样执行busybox中的任何命令,实际执行的是新版本位于/var/apps/busybox。
根据用户组来替换:查找进程所属的用户组,根据进程所在的用户组,例如管理员权限的用户打开logon.jpg,替换成admin.jpg,普通用户权限的用户打开logon.jpg,替换成user.jpg。
以不同的时间段分派不同的替换规则:例如配置进程打开hello.jpg时,在00:00-12:00时间段替换成GoodMorning.jpg, 在12:00-18:00替换成GoodAfternoon.jpg,在18:00-24:00替换成GoodEvening.jpg。
优选地,多种规则组合成的规则包括无条件替换规则和根据用户组来替换规则二者组合成的规则;无条件替换规则和以不同的时间段分派不同的替换规则二者组合成的规则;以不同的时间段分派不同的替换规则和根据用户组来替换规则二者组合成的规则;无条件替换规则、根据用户组来替换规则和以不同的时间段分派不同的替换规则三者组合成的规则。
根据步骤S5文件替换模块根据预先配置好的替换规则进行匹配具体包括以下匹配结果:
A1、未发现任何匹配的规则,按照原有的处理流程处理,即打开原来的文件;
A2、发现匹配的规则,规则设置为需要做替换,替换成新的路径下的文件,为替换后的文件分配相关节点信息;后续的读写文件,关闭文件都是在替换的文件上进行操作。由于替换发生在内核空间,并且对于用户态空间是不透明的,用户空间的进程是无法感知的,也不影响原有的处理流程。相当于”欺骗”了用户空间的进程,以为打开了原来的文件,实际打开了被替换的文件,除非现有替换文件数据有异常,在通常情况下,都能完全正常地工作。
A3、发现匹配规则,规则设置为不允许打开,直接返回为空,表现结果为打开文件失败。这样可以阻止一些用户打开敏感文件,或在某些时间段阻止用户使用一些功能。
如果文件打开失败,则退出后续处理;如果文件打开成功,无论是否被替换,因为分配了文件信息结构(在linux***中是struct file这个结构)返回给用户空间的进程,后续的读写文件,移动文件指针,关闭文件等等都是在此新文件信息结构体所指定的文件节点上操作。因此监控拦截模块无需监控后续这些操作,减少了复杂度和提高了效率。
优选地,针对某些***,特别是有些嵌入式小型设备,存储空间宝贵。文件***大部分文件是压缩的,在启动后解压到内存,无法通过部分修改的文件的方式修改升级部分功能,在内存文件***中创建一个目录,例如/var/apps,将替换文件放在此目录中,ftp等方式上传替换文件到此目录中,当符合替换规则时,使用/var/apps下的文件。在内存中,便于快速操作替换,此方法用于调试阶段。当需要永久替换部分模块时,可以把这些需要替换的文件存放在配置文件区间,以便在掉电重启后仍然有替换功能。用于解决嵌入式小型设备的压缩文件***无法替换升级其中的部分文件的问题,之前通常的解决方法是哪怕有一点点功能或代码的改变,需要重新编译打包压缩整个文件***,然后升级才能做到。此方法另外还需要开发者具有全部的代码模块,编译打包工具等才能完成,缺一不可。采用本发明的方法后,只要有配置权限,就能轻易做到任意文件的替换。
以上所述仅是本发明的优选实施方式,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。
Claims (6)
1.一种动态可配置的文件替换监控***,其特征在于:它包括:
文件替换模块:用于将全路径文件名称、进程号和用户组这些信息和已经配置好的规则进行比较;
拦截监控模块:用于监控打开文件的名称、进程号和用户组并通知所述文件替换模块打开文件事件发生;
配置模块:用于对文件替换规则进行配置,并将配置好的替换规则在用户空间通过命令传递到所述文件替换模块。
2.一种动态可配置的文件替换监控方法,其特征在于:它包括以下步骤:
S1、配置文件替换规则:
S2、通过命令行的方式将配置好的替换规则传递到***的文件替换模块中;
S3、通过***调用进入***调用表并按照函数路径调用函数打开文件;
S4、拦截检测调用文件名,并把进程所在的用户组信息传递到文件替换模块;
S5、文件替换模块根据预先配置好的替换规则进行匹配。
3.根据权利要求2所述的一种动态可配置的文件替换监控方法,其特征在于:所述的文件替换规则包括无条件替换、根据用户组替换、以不同的时间段分派不同的替换规则和替换成空文件中的一种规则或者多种规则亦或者多种规则组合成的规则。
4.根据权利要求2所述的一种动态可配置的文件替换监控方法,其特征在于:根据步骤S5文件替换模块根据预先配置好的替换规则进行匹配具体包括以下匹配结果:
A1、未发现任何匹配的规则,按照原有的处理流程处理,即打开原来的文件;
A2、发现匹配的规则,规则设置为需要做替换,替换成新的路径下的文件,为替换后的文件分配相关节点信息;
A3、发现匹配规则,规则设置为不允许打开,直接返回为空,表现结果为打开文件失败。
5.根据权利要求4所述的一种动态可配置的文件替换监控方法,其特征在于:如果文件打开失败,则退出后续处理;如果文件打开成功,无论是否被替换后续的处理都是新文件信息结构体所指定的文件节点上操作。
6.根据权利要求4所述的一种动态可配置的文件替换监控方法,其特征在于:还包括在内存文件***中创建一个目录,并将替换文件存放在该目录中,当符合替换规则时使用存放在该目录下的文件;以便在掉电或重启后仍然后替换功能。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811559594.4A CN109684281A (zh) | 2019-01-10 | 2019-01-10 | 一种动态可配置的文件替换和监控的方法和*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811559594.4A CN109684281A (zh) | 2019-01-10 | 2019-01-10 | 一种动态可配置的文件替换和监控的方法和*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109684281A true CN109684281A (zh) | 2019-04-26 |
Family
ID=66186383
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811559594.4A Withdrawn CN109684281A (zh) | 2019-01-10 | 2019-01-10 | 一种动态可配置的文件替换和监控的方法和*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109684281A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111352904A (zh) * | 2020-03-04 | 2020-06-30 | 海南金盘智能科技股份有限公司 | 模型文件的更换方法及装置 |
-
2019
- 2019-01-10 CN CN201811559594.4A patent/CN109684281A/zh not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111352904A (zh) * | 2020-03-04 | 2020-06-30 | 海南金盘智能科技股份有限公司 | 模型文件的更换方法及装置 |
CN111352904B (zh) * | 2020-03-04 | 2023-05-05 | 海南金盘智能科技股份有限公司 | 模型文件的更换方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI575362B (zh) | 備份方法、環境更新預先檢測方法及其系統 | |
CN107608706A (zh) | 一种基于功能模块的应用程序自动热更新方法 | |
CN108491216A (zh) | 一种Android***无感知应用安装升级的方法 | |
CN104536737A (zh) | 一种基于组件的程序开发框架 | |
CN110515673A (zh) | 插件化***及其方法 | |
CN108241500A (zh) | 一种硬件组件的修复方法、装置、***和存储介质 | |
GB2465193A (en) | Detecting updated files in a firmware over the air update using CRC values | |
CN110768807B (zh) | 虚拟资源方法及装置、虚拟资源处理网元及存储介质 | |
CN105824623A (zh) | 一种Android应用热修复的方法和装置 | |
EP2156286A1 (en) | Dynamic cli mapping for clustered software entities | |
CN111966366A (zh) | 一种多cpu架构的集群部署的方法和设备 | |
CN107943501A (zh) | 嵌入式设备升级方法、装置、计算机设备和存储介质 | |
CN101964725A (zh) | 业务不中断升级的方法和*** | |
CN109144534A (zh) | 服务模块动态更新方法、装置及电子设备 | |
KR20090034549A (ko) | 보안 프로파일을 이용한 복합 단말의 보안 장치 및 그 방법 | |
CN109753419A (zh) | 一种非侵入式监控android***的所有应用的异常日志信息的方法及装置 | |
CN105975333B (zh) | 应用程序运行控制的方法及装置 | |
CN109684281A (zh) | 一种动态可配置的文件替换和监控的方法和*** | |
CN116107590A (zh) | 软件产品开发部署中兼容微服务和单体架构的实现方法及*** | |
CN103019695A (zh) | 数据对象与状态控制逻辑分离***和方法 | |
US20140330949A1 (en) | System and method for optimizing and digitally correcting errors on a computer system | |
CN104484176A (zh) | 一种安卓***窗口对象获取方法和装置 | |
CN100511175C (zh) | 一种使用软件补丁修改微码程序的方法 | |
CN110825452A (zh) | 一种多云管理的云服务适配模块管理方法 | |
CN105224340A (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 | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20190426 |
|
WW01 | Invention patent application withdrawn after publication |