Embodiments of the present invention generally relate to computer file management, and more specifically, to managing configuration files.
At present, various systems including software systems and hardware systems generally use a configuration file to record information or parameters about their configurations. With the Linux system as an example, when the system is installed on a machine, it needs to configure a host name. Correspondingly, the host name is an item of configuration information of the Linux system, or a “configuration item.” Typically, configuration information is tangibly stored in the form of files in the machine. The parameters, settings or any other configuration information included in the configuration file can be modified or updated, dependent on various factors such as host machine, deployment environment, usage scenario, etc.
Configuration management (CM) refers to management of a configuration file and the configuration information stored therein. Dedicated CM tools have been developed to manage such configuration files of various systems. For a CM tool, it is a fundamental and important function to automatically discover a configuration file among a plurality of files stored in the machine.
Typical CM tools rely on pre-defined scripts, rules, or a user's expertise to determine which file(s) stored in the machine is a configuration file. However, with the increasing complexity of systems and the versatility of configuration files, traditional CM tools typically cannot discover all of the configuration files, which can cause a degradation in the accuracy of CM management. Moreover, for those configurations that fail to be discovered automatically, the user typically has to discover them manually or semi-manually. For example, a human user has to look up those configuration files that cannot be discovered automatically, one by one, according to rules prescribed by experts or documents. This process is likely time-consuming, inefficient, and inaccurate. Additionally, rule or script-based configuration file discovery is specific to a system or application. In other words, different CM management tools must be developed for each different system, which deteriorates the universality of CM management and increases the development cycle and costs of a CM management tool.
In order to automatically discover a configuration file in a machine, the key issue lies in accurately determining a characteristic of the configuration file, and representing such a characteristic in an appropriate manner. It should be appreciated that the characteristic of the configuration file is the basis for automatic discovery of the configuration file.