一种基于openwrt系统flash分区的log信息保存方法和系统与流程

文档序号:16246074发布日期:2018-12-11 23:35阅读:1446来源:国知局
一种基于openwrt系统flash分区的log信息保存方法和系统与流程

本发明涉及嵌入式设备领域,尤其涉及一种基于openwrt系统flash分区的log信息保存方法和系统。

背景技术

基于openwrt系统的设备,如路由器等,在开发调试阶段,常常需要查看系统的log(日志)信息进行调试,但现有的openwrt系统设备大多都无法保存log信息,设备重启后log信息被清空,给软件研发人员的调试工作造成很大的困难。

在设备测试阶段或者发售后,如果能保存设备的log信息,在出现故障的时候将会对设备的维护和升级带来很大的便利,不需要研发人员反复地复现问题,查看log信息。

为了解决上述技术问题,人们进行了长期的探索,例如中国专利公开了一种linux日志管理系统及方法[申请号:201611262883.9],一种基于linux服务器的资源共享和数据备份的方法[申请号:201610320927.2],以及一种获取linux虚拟机内部日志的方法[申请号:201510790808.9]等专利,前述三个方案均需要通过外部服务器,连接设备才能获取log信息,结构复杂,使用不便,且需要外部设备的配合,当设备不在用户使用场景下,用户未必能够使设备连接上外部服务器,导致log信息无法获取;此外,第三个方案只能获取当天的log信息,信息在设备中仍然无法长期保存,若出现设备重启,则重要的log信息将会丢失,为后期维护调试带来困难。



技术实现要素:

本发明的目的是针对上述问题,提供一种能够长期保存log信息的基于openwrt系统flash分区的log信息保存方法;

本方案的另一目的是提供一种基于上述方法的基于openwrt系统flash分区的log信息保存系统。

为达到上述目的,本发明采用了下列技术方案:

一种基于openwrt系统flash分区的log信息保存方法,包括:

s1.添加至少一个用于保存log信息的备用flash分区;

s2.创建目录,并将所述备用flash分区挂载至所述目录下;

s3.将所述log信息保存于所述目录下。

在上述的基于openwrt系统flash分区的log信息保存方法中,在步骤s1中,在构建系统的flash分区时添加所述备用flash分区,并对其进行命名。

在上述的基于openwrt系统flash分区的log信息保存方法中,每个所述备用flash分区的大小为至少320m。

在上述的基于openwrt系统flash分区的log信息保存方法中,在步骤s2中,通过命令“mkdir/目录名”创建所述目录,且所述目录名为所述目录被命名的名称。

在上述的基于openwrt系统flash分区的log信息保存方法中,在步骤s2中,使用linux的mount工具将所述备用flash分区挂载至所述目录下,且所述挂载命令为“mount-t文件系统类型/dev/备用flash分区位置/目录名”,所述目录名为所述目录被命名的名称。

在上述的基于openwrt系统flash分区的log信息保存方法中,所述文件系统类型为jffs2,在步骤s2中,将备用flash分区以jffs2文件系统类型挂载至所述目录下。

在上述的基于openwrt系统flash分区的log信息保存方法中,步骤s3具体包括:

使用syslog机制记录所述log信息,并将所述log信息保存于所述目录下。

在上述的基于openwrt系统flash分区的log信息保存方法中,在步骤s3之后还包括:

s4.使用守护进程定期或不定期检测所述目录中log信息的大小,当所述log信息超过预设值时,删除预设数量的旧log信息。

一种基于openwrt系统flash分区的log信息保存系统,包括:

分区创建模块,用于添加至少一个用于保存log信息的备用flash分区;

目录创建模块,用于创建目录;

挂载模块,用于将所述备用flash分区挂载至所述目录下;

保存模块,用于将所述log信息保存在所述目录下。

在上述的基于openwrt系统flash分区的log信息保存系统中,还包括守护模块,用于定期或不定期检测所述目录中log信息的大小,当所述log信息超过预设值时,删除预设数量的旧log信息。

本发明相较于现有技术具有以下优点:1、添加独立的flash分区,用于log信息保存,即使重启设备以及恢复出厂参数时也不会丢失log信息,方便软件研发人员定位;2、实现了log信息管理系统不依赖于外部服务器即可达到长期保存log的功能;3、由于不依赖于外部服务器等设备,避免出现,在用户使用场景下,没有连接外部服务器无法保存log信息,设备故障时无法定位问题,实现了设备无论在那种使用场景下,都能保存log信息,对于设备的后期维护,设备的稳定性提供了很大的帮助,并且同时具有构建简单,方便快捷等优点;4、设备在用户手上使用,或者进行长时间测试时,能够很好的保存使用过程的log信息,方便了设备出现问题时进行问题;5、能够定期检测并定量删除log信息,保证最新的log信息有存储空间。

附图说明

图1是本发明实施例一的方法流程图;

图2是本发明实施例一具有守护进程时的方法流程图;

图3是本发明实施例二的系统结构框图。

附图标记:分区创建模块1;目录创建模块2;挂载模块3;保存模块4;守护模块5。

具体实施方式

虽然流程图将各项操作描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。各项操作的顺序可以被重新安排。当其操作完成时处理可以被终止,但是还可以具有未包括在附图中的附加步骤。处理可以对应于方法、函数、规程、子例程、子程序等等。

这里所使用的术语“和/或”包括其中一个或更多所列出的相关联项目的任意和所有组合。当一个单元被称为“连接”或“耦合”到另一单元时,其可以直接连接或耦合到所述另一单元,或者可以存在中间单元。

这里所使用的术语仅仅是为了描述具体实施例而不意图限制示例性实施例。除非上下文明确地另有所指,否则这里所使用的单数形式“一个”、“一项”还意图包括复数。还应当理解的是,这里所使用的术语“包括”和/或“包含”规定所陈述的特征、整数、步骤、操作、单元和/或组件的存在,而不排除存在或添加一个或更多其他特征、整数、步骤、操作、单元、组件和/或其组合。

本发明应用于openwrt系统的设备,如路由器等,解决了现有技术中在开发调试阶段,无法保存log信息,设备重启后log信息被清空导致工作人员工作难度加大等问题,以下是本发明的优选实施例并结合附图,对本发明的技术方案作进一步的描述,但本发明不限于这些实施例。

实施例一

如图1所述,本实施例基于现有技术的问题,提出一种基于openwrt系统flash分区的log信息保存方法,包括:

s1.添加至少一个用于保存log信息的备用flash分区;

s2.创建目录,并将所述备用flash分区挂载至所述目录下;

s3.将所述log信息保存于所述目录下。

优选地,在步骤s1中,本实施例添加数量为一个,且在构建系统的flash分区时添加备用flash分区以用于保存log信息,并对备用flash分区进行命名,例如,这里将其命名为permanent。

优选地,每个所述备用flash分区的大小均大于或等于5个block,即至少320m,当然,每个备用flash分区的大小可根据实际需求进行自行调整,但是为了能够顺利挂载至目录下,每个备用flah分区必须大于320m。

进一步地,在步骤s2中,通过命令“mkdir/目录名”创建所述目录,且所述目录名为所述目录被命名的名称,并且,这里将目录命名为permanent_config,那么,前述命令就应该为:mkdir/permanent_config。

具体地,在步骤s2中,使用linux的mount工具将所述备用flash分区挂载至所述目录下,且所述挂载命令为“mount-t文件系统类型/dev/备用flash分区位置/目录名”,所述目录名为所述目录被命名的名称;所述文件系统类型为jffs2,在步骤s2中,将备用flash分区以jffs2文件系统类型挂载至所述目录下。

例如,这里使用mtdblock2分区位置,那么挂载命令应该为:mount-tjffs2/dev/mtdblock2/permanent_config。

进一步地,步骤s3具体包括:

使用syslog机制记录所述log信息,并将所述log信息保存于所述目录下,此外,本实施例使用logread命令读取log信息,并生成于步骤s2创建的目录下,也就是说,在目录下的文件是直接保存在备用flash分区中的,即保存在flash中,由于不是保存于闪存中,所以即使重启设备,log信息也不会丢失,由于不是保存在rootfsdatas分区中,所以即使恢复出厂设置,也不会删除log信息,实现了永久保存log信息的功能。

如图2所示,优选地,为了避免log信息过大,在步骤s3之后还包括:

s4.使用守护进程定期或不定期检测所述目录中log信息的大小,当所述log信息超过预设值时,删除预设数量的旧log信息。

下面使用具体场景对本实施例进行详细说明:

1、在构建openwrt系统的flash分区时,添加一个备用flash分区,命名为permanent,flash分区信息如下,mtd2所在列为备用flash分区信息:

2、使用命令mkdir/permanent_config创建命名为permanent_config的目录,在命令行下使用ls查看设备,已经创建的目录如下所示:

3、使用linux的mount工具,将permanent分区以jffs2文件系统类型挂载到/permanent_config目录下,挂载命令为:mount-tjffs2/dev/mtdblock2/permanent_config,系统挂载情况如下,最后一行表示已经将permanent分区挂载至permanent_config目录:

4、使用syslog机制记录log信息,保存于/permanent_config目录下,之后使用logread命令读取log信息,并生成于/permanent_config目录下;

5、创建一个守护进程,定时检测log信息的大小,当超过permanent分区大小的80%时,删除50%旧的log信息,避免log信息过大,同时保留最新的log信息。

本实施例的方法通过将log信息保存在flash中实现长期保存log信息的功能,并且,log信息的管理系统不依赖与外部服务器,避免出现在用户使用场景下没有连接外部服务器,无法保存log信息,设备故障时,无法定位问题,实现了设备无论在哪种使用场景下,都能保存log信息,对于设备的后期维护,设备的稳定性提供了很大的帮助。

实施例二

如图3所示,本实施例公开了一种基于openwrt系统flash分区的log信息保存系统,包括:

分区创建模块1,用于添加至少一个用于保存log信息的备用flash分区;具体地说,用于在构建flash分区时添加一个备用flash分区以用于保存log信息,并对备用flash分区进行命名;

目录创建模块2,用于创建目录,该目录用于放置备用flash分区;

挂载模块3,用于将所述备用flash分区挂载至所述目录下;

保存模块4,用于将所述log信息保存在所述目录下。

进一步地,本实施例些系统还包括守护模块5,用于定期或不定期检测所述目录中log信息的大小,当所述log信息超过预设值时,删除预设数量的旧log信息。预设值可以是备用flash分区的80%,预设数量可以是全部log信息的50%,并且使相对旧的那部分信息。

本文中所描述的具体实施例仅仅是对本发明作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。

此外,尽管本文较多地使用了分区创建模块1;目录创建模块2;挂载模块3;保存模块4;守护模块5等术语,但并不排除使用其它术语的可能性。使用这些术语仅仅是为了更方便地描述和解释本发明的本质把它们解释成任何一种附加的限制都是与本发明精神相违背的。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1