当前位置:首页 » 数据仓库 » 多台机器如何修改配置文件
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

多台机器如何修改配置文件

发布时间: 2023-04-01 19:08:46

❶ 如何修改配置文件

1. 引言
OpenWRT中采用LuCI作为它的Web interface界面框架,采用Lua语言。在本文中将以一个简单的示例详细描述如何自定义开发一个界面,对一个配置文件进行操作。
2.Model与Controler
MVC的设计理念是进行LuCI开发的一个关键
在LuCI中Controller的文件定义在固件中的/usr/lib/lua/luci/controller目录中,模版目录在/usr/lib/lua/luci/view目录下,而model则是在/usr/lib/lua/luci/model中。而model中有一个特殊的模块叫做CBI,被称为LuCI中最酷的功能,该模块的功能是方便的对一个配置文件进行修改。
3.示例
本文中的页面建立在LuCI界面的network下,不单独创建页面,因此无需写view,只用些controller和model就可以了。
1)首先创建一个controller
ccontroller/mycbi.lua
mole("LUCI.controller.mycbi", package.seeall)

function index()
entry({"admin", "network", "mycbi_change"}, cbi("mycbi-model/mycbimole"), "Change My Conf", 30).dependent=false
end

解释一下关键代码:

在index()函数中,使用entry函数来完成每个模块函数的注册,官方说明文档如下:
entry(path, target, title=nil, order=nil)
path is a table that describes the position in the dispatching tree: For example a path of {"foo", "bar", "baz"} would insert your node in foo.bar.baz.
target describes the action that will be taken when a user requests the node. There are several predefined ones of which the 3 most important (call, template, cbi) are described later on on this page
title defines the title that will be visible to the user in the menu (optional)
order is a number with which nodes on the same level will be sorted in the menu (optional)
其中target主要分为三类:call,template和cbi。call用来调用函数,template用来调用已有的htm模版,而CBI模块则是使用非常频繁也非常方便的模块,包含的一系列lua文件构成界面元素的组合,所有cbi模块中的控件都需要写在luci.cbi.Map中,在cbi模块中定义各种控件,Luci系统会自动执行大部分处理工作。在cbi.lua文件中封装了所有的控件元素,例如复选框,下拉列表等。

2)创建model
#mkdir /usr/lib/lua/luci/model/cbi/mycbi-model
#vim /usr/lib/lua/luci/model/cbi/mycbi-model/mycbimole.lua
m = Map("mycbi", "mycbi conf change interface")
s = m:section(TypedSection, "MySection")
s.addremove = true
s:option(Value, "username", "Name:")
key=s:option(Value, "password", "Password")
key.password=true;
return m

解释一下关键代码:

3)创建配置文件
#vim /etc/config/mycbi
config 'MySection' 'mycbi'

option 'username' 'youruser'
option 'password' 'yourpass'

4. 测试
进入OpenWRT界面,登陆后就可以点击“网络”,如果是英文就点击network,可以看到我们添加的子页面入口:

点击后进入页面如下:

输入用户名密码:root/test,点击保存,后台查看配置文件已经被更改:

5. 问题记录
1)首先,配置文件不能有任何后缀,否则页面加载后是空页面
2)如果出现500 错误,说明lua文件写的有问题,要么是路径错误,要么是语法错误,暂时没找到写日志的方法,可以用wireshark抓包看错误

❷ 如何脚本方式批量修改交换机配置文件

如果真的想去使用好交换机配置文件,那么就因该在对交换机配置文件进行任何更改之前,进行备份工作,这样会使得交换机配置文件变得更完美,也避免一些问题的发生。
想要有效地管理交换机配置文件,就是要在适当的时候、适当的地点及时运行命令。通过使用命令,IOS软件能够将配置文件从一个组件或者设备移动到其他需要的组件与设备上去。
这个命令主要有两参数,第一个参数表示配置文件的源位置,即需要被复制的文件。第二个参数表示目标位置,即要将这个配置文件复制到哪个地方。如使用 running-config tftp命令,就可以将运行配置文件复制到网络上的TFTP服务器来进行配置。
不过在复制的时候,需要注意,如果目标位置有相同的配置文件,则这个命令会将目标文件中相同名字的配置文件覆盖掉。不过这句话说其来容易,做起来可是比较难。具体来说,需要做到一下几点。
首先,当RAM中的运行交换机配置文件进行更改之后,需要将最新的运行配置文件进行备份。这主要是因为RAM内存中的内容断电后会丢失。如果网络管理员希望在交换机运行过程中对其进行的更改,在交换机下次启动的时候仍然有效。
那么就需要将这个更改的内容保存在启动配置文件中。如果要实现这个目的,可以通过使用命令 running-config startup-config。这个命令的含义就是将运行配置文件保存到启动交换机配置文件中。如此的话,就会将交换机的最近更新的内容保存了下来。
其次需要注意的是,在将RAM中的运行配置文件复制到NVRAM中的时候,需要先确保当前配置的准确性。也就是说,当我们修改了RAM中的运行配置文件相关参数之后,一般不会急着将相关的内容复制到NVRAM中。
而是需要先对其进行测试与追踪,以判断新设置的参数是否符合我们预计的需求。也就是要判断新参数是否起作用了,是否满足用户的需要。只有确保新配置的参数运行正常的情况下,才能够将这个更新保存到启动配置文件中。
否则的话,万一这个参数设置有错误,那么在下次启动的时候就可能会出现问题。为了安全起见,最好在将运行配置文件复制到NVRAM中的时候,能够先对NVRAM中内容进行备份。
这主要是因为在使用 running-config startup-config命令的时候,命令会自动覆盖目标位置的启动配置文件。此时如果运行配置文件有错误,那么连神仙也回天无力了。为此笔者建立网络管理员,在管理配置文件的时候,要小心又小心,宁可多走一步。
如在保存更新之前,先将原先的启动配置文件在tftp服务器上备份一份。如此的话,即使最近的配置有问题,而网络管理员又保存了的话,也可以利用备份后的配置文件来启动交换机。
要完成这个功能,网络管理员可以运行命令 start tftp(将启动配置文件保存到TFTP服务器上)。如果启动配置文件有问题的话,还可以使用 tftp start命令,将备份的配置文件复制到NVRAM中,让交换机使用这个配置文件来进行初始化。
第三,除了在NVRAM与tftp服务器之间可以相互复制之外,在RAM与tftp服务器之间也可以进行相互的复制。如网络管理员更新了交换机配置文件的某个参数,如设置了虚拟局域网。
此时可能在短时间内很难判断当前的配置是否准确。可能需要运行一个星期甚至更长的时间才能够做出判断。此时最好不要轻易的去更新启动配置文件中的内容。笔者建议的方法是先将RAM中的运行配置文件复制到tftp服务器中,实现一个暂时的过渡。
当确定配置没有问题后,再将这个运行配置文件复制、替换掉启动配置文件,以保存最新的可用更新。要实现这个需求的话,可以使用命令 run tftp(将运行配置文件复制到tftp服务器上)或者使用命令 tftp run(将tftp服务器上的配置文件复制到ram中去)这两个命令来实现。
笔者最好强调一遍,怎么配置运行配置文件或者初始参数文件涉及到很多内容,具有很大的难度。但是如果管理配置文件,则这个命令是核心。而使用好这个命令的关键,就是在对交换机配置文件进行任何更改之前,进行备份。并在确保更新内容可用之后,及时将其保存到断电后不易丢失的NVRAM中或者网络的tftp服务器上。