这周在学习Shell脚本编程,学习用到测试环境是Centos6和Centos7,老师建议我们写一个reset.sh脚本可以实现系统环境一键还原系统工作环境,可以防止将来重装系统后繁琐的配置,我就用目前学习的知识自己编撰了一个工具,reset.sh,可以实现交互式的备份还原当前系统的配置文件linux系统备份还原软件,因为没有学习到循环和功能调用,部份代码可能不够精简,实现方式也有点笨,等到学到新技术后,再来更新脚本。
所有的配置备份文件承继统一的命名规则,NAME.bak_VERSION
NAME:须要备份的配置文件的名称。
VERSION:系统的版本信息,便捷脚本中变量形参。运行脚本,会手动创建备份目录,文件的备份路径默认是在程序运行的当前目录创建备份文件夹,命名规则cfg_back_VERSION脚本中记录了须要备份的配置文件的路径信息,每次执行脚本就会将这种文件,保存到cfg_backup_VERSION/YY-MM-DD—HH-mm-ss/中,文件夹的名称为当前时间。脚本执行可以交互式的恢复备份文件手指定日期的配置备份文件。功能选择界面
1)用户可随便自行DIY自己的个性LOGO,颜色每次登入随机改变。
2)用户可依照自己的操作需求,输入1或则2,来决定是要备份还是还原系统配置。
3)对于某些语文不好或则手爱抖的朋友和同事,我们还特意设置了亲切友好的翻译交互方法!
2.配置备份模块
1)假如你选择了2,但是回车了,你会发觉程序并没有执行,光标会在这儿等待你9秒(苦恼症和手残党的福音)直至你再此敲打回车,或则等到9秒后备份开始执行。
2)程序执行后会提醒你开始备份linux命令chm,和结束备份,并且将备份文件的绝对路径信息通过绿颜色标明下来,每位文件是否备份完成也会提醒。
3.配置还原模块
1)假如你选择了1,这么你会发觉许多你当初备份过的文件被列了下来,你可以选择其中一个你想要恢复回来的日期,输入行后面的数字,其实假如你不按要求输入数字,
仍旧会得到亲切友好的提醒的哦,中英文双翻!!
2)输入正确数字,回车后,会听到开始配置,和配置完成的提醒,配置过的文件也时用红色标出,胜败一目了然。这儿有一个后台操作,界面是不显示的,脚本在还原配置之前会提早把目前系统的配置做一个备份,之后再执行还原,这样避免误操作带来的不可逆损失!
1.首先进行变量申明,将系统中用到的变量提早解释,由于我写的脚本我回头看都看不懂!!Centos6和7的网卡名称不一样,所以这儿分别进行提取形参给N1和N2,
2.常量申明中,定义了要备份文件的绝对路径信息,还有那种“亲切祝福语”库;
i拿来形成随机数,依次和1到6进行比较,从而给JOKE形参,JOKE会在前面登录错误提示信息处被复印;这儿实现也可以用循环!
3.个性化LOGO设计;每一行颜色都是随机形成的。
下边是登录信息提示,首先判定用户输入值是否是数字,之后再判定是否小于2;倘若不合理输出对应的提示语,外加上随机的一句JOKE!
4.脚本里有两部份内容,没学到调用功能,只会次序执行,想了个办法就是给命令行前加注释#,定义了两个变量Reset和Backup通过用户输入的值,给对应的参数形参,来注释掉对应的行。
这儿通过ls-dtl和sed分别把文件名按更改时间排序,将文件名剪切了下来。并且不晓得怎么给行加行号,就重定向了一个temp临时文件中,用完后删掉temp文件。
5.为避免用户误操作,每次还原前,都是提早备份的,这儿出现一个问题,Reseth和Backup被替换成#后,系统默认将他辨识为命令,会报错,所以用了错误重定向,将报错去除。
哈哈,一个Shell初学者写的玩的,程序员都时复杂的功能简单做,会的不多,只能简单的功能复杂做了,不过是在学习嘛,我认为总结知识最有效的方式就是用一用,这个脚本基本上用上了老师讲的一些编撰脚本的知识,即使功能简单,却也调试了好几天!!代码也有几行,不断累积到了一百多行!不断有错误,也不断有新的看法linux系统日志,那个有看法能够克服各类困难,实现的觉得还是很棒的!一开始我是写了两个脚本的,一个备份用,一个还原用,想整合成一个,并且功能调用还没学,就想了个在行首形参#的看法linux系统备份还原软件,,报错,脚本不足的地方好多,例如好多地方可以用循环来简化,功能调用等。
3.这么问题来了,你一定会问如何确认备份没问题,我的回答是,我也不晓得,哈哈,不够我都做过测试了,而且可能还有别的错误,等待你们来发觉,欢迎批评见谅。