无
该局点使用5560s-si设备测试python脚本功能,脚本内关键如下
#!usr/bin/python
import comware
comware.CLI("startup saved-configuration flash:/5560.cfg main")
comware.CLI("reboot")
操作过程如下
Please wait...... Done.
Start to check configuration with next startup configuration file, please wait.........DONE!
Current configuration may be lost after the reboot, save current configuration? [Y/N]:
Please input the file name(*.cfg)[flash:/5560.cfg]
flash:/5560.cfg exists, overwrite? [Y/N]:
Validating file. Please wait...
Saved the current configuration to mainboard device successfully.
This command will reboot the device. Continue? [Y/N]:
Now rebooting, please wait....
%Jan 1 02:19:59:790 2013 H3C DEV/5/SYSTEM_REBOOT: System is rebooting now.
..
Starting......
Press Ctrl+D to access BASIC BOOT MENU
Booting Normal Extend BootWare....
结果设备重启之后发现,并没有以指定的5560.cfg文件中的配置启动,设备起来后仍然是之前的配置,但是在设备上dis startup看下一次启动文件已经是5560.cfg文件了,dir看设备flash中也确实存在该5560.cfg文件
查看官网python相关手册,发现命令手册中有如下说明:
python filename命令用来执行Python脚本文件。
【命令】
python filename [ param ]
【视图】
用户视图
【缺省用户角色】
network-admin
【参数】
filename:Python脚本文件的名称。该文件必须为设备文件系统中存在的文件,文件名区分大小写,扩展名必须为“.py”,扩展名不区分大小写。
param:执行Python脚本文件时指定的参数,多个参数之间以空格分隔。
【使用指导】
脚本执行期间,当前登录用户不能执行其它操作。须等到脚本执行完毕,才能执行其它操作。
请用户确保脚本语法的正确性。当系统发现脚本中的指令存在语法错误时,系统将不再执行该指令以及后面的指令。
当系统执行脚本中的交互式指令时,系统将使用缺省值继续执行该指令。
reboot相当于是一个交互式指令,在重启过程中也确实没有让人工输入Y或者N,而是系统自动向下执行了
而仔细分析设备重启过程,发现疑点:
根据操作记录,设备执行reboot前询问要不要save当前配置,设备默认给选的是Y,选择Y之后下一次的启动文件名默认给填充了5560.cfg这个文件Please input the file name(*.cfg)[flash:/5560.cfg],但是紧接着设备又问了:这个cfg文件已经存在了是否要覆盖flash:/5560.cfg exists, overwrite? [Y/N]:,设备又默认执行了Y,于是以当前设备上的配置覆盖掉了原先指定的5560.cfg,于是下一次启动就以当前的配置启动了,而不是以前面写入5560.cfg这个文件里的内容启动,虽然启动文件名还是5560.cfg,但内容已与之前指定的“5560.cfg“大相庭径。从效果上来看就是指定启动文件不成功。
为了解决这个问题,可以把脚本里的reboot命令替换成reboot force命令,强制重启,这个命令不会询问是否要save当前配置,直接重启
reboot
force:强制重启://这个命令平时一般不要用,万一操作不当容易丢配置
· 不指定该参数时,重启设备,系统会做一些保护性检查(如启动文件是否存在,是否正在写磁盘等),若检查不通过则退出处理,不会重启设备;
· 指定该参数时,系统将不进行任何检查,直接执行重启操作。
该案例暂时没有网友评论
✖
案例意见反馈
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作