三、set命令的高级应用。
上面举的例子其实只是set命令的一个教学例子。在实际工作中,这主要是用来让大家理解set命令来截取输出结果的基本原理。笔者现在要介绍的就是系统工程师在实际工作中经常要用到的内容,大家要睁开眼看仔细了。
1、从其他文件中或者不规则分隔符的结果中截取字段。如上面所示的输出结果中,各个字段时通过空格符号来分隔的。也即是说,set命令使用的参数分隔符默认情况下采用的是空格符号分隔符。如果显示的结果不是以空格符号分隔的,还是以分号或者横杆来区分的(系统工程师平时遇到最多的就是利用分号或者/符号来分隔的内容),那么就不能利用这个命令了吗?其实系统工程师可以根据实际情况来设置这个分隔符。也就是说,系统工程师可以利用这个set命令来操作位置参数,从而从任何输出结果中(分隔符不同)截取所需要的内容。
2、有利于备份的工作。其实在备份作业中,这个特性就非常有用。如笔者在Unix系统上简易部署了一个文件服务器。在这个服务器上,存储有企业所有员工的日常工作文件。为此其日常的安全就显得非常的重要。此时系统工程师可以采用日被分的方式,把备份文件保存为一个月。也就是说,在系统中创建1-31一共三十一个文件夹。然后把文件服务器中的备份文件按照日期一次保存到这三十一个文件夹中。也就是说1日的备份文件保存在文件夹名字为1的文件夹中,2日的备分文件备份到名字为2的文件夹中,依次类推。这个备份功能程序不难,系统工程师可以编写一个脚本程序来完成。困难的是,系统如何根据当前的日期把备份文件保存到特定的文件夹中。此时就需要用刀这个set命令。系统工程师可以利用set命令来抽取系统日期中的第三个位置参数。然后根据这个参数创建文件夹(创建文件夹时,如果文件夹已经存在,则系统会自动覆盖这个文件夹)。就是这么简单,就可以完成按日来保存备份文件了。可见,利用set命令截取某个输出结果中的内容这是一个基础性的功能。他跟其他命令或者程序结合则可以发挥意想不到的效果。为此笔者建议各位系统工程师,要牢记如何通过set命令来从输出结果中截取必要的参数。或许在什么时候就用的着了。另外需要注意的就是,set命令可以通过各种分隔符来截取相关的字段,而不仅仅只是支持一个空格分隔符,如可以从一个分号分隔的参数文件中获取相关的参数等等。