一 概述
shell script(程序脚本化)是一个可以实现自动管理系统的好工具!它值得开发人员好好学习,基本上,shell script有点像是早期批处理的文件,即将一些命令汇整起来一次执行,但是shell script拥有更强大的功能,因为它可以编写不需要经过编译就能执行的shell script程序。这样它可以简化我们的日常工作管理,而且在Linux系统环境中,一些服务需要通过shell script来启动运行。
其实,shell script是利用shell的功能所写的一个"程序",这个程序是使用纯文本文件,将一些shell的语法与命令(含外部命令)写在里面,搭配正则表达式,管道命令与数据流重定向等功能,以达到我们所想要的处理目的。类似于早期DOS年代的批处理文件(.bat),执行一个脚本,就能够执行多个命令,而且shell script更提供了数组,循环,条件与逻辑判断等重要功能,让用户可以直接通过shell script来编写程序。
二 shell script的作用
- 作为自动化管理的重要依据:实际开发管理中,管理一台机器是一件比较繁琐的事,我们每天都需要完成:查询登录文件,追踪流量,监控用户使用主机状态,主机各项硬设备状态,主机软件更新查询等,面对每天都会进行的工作我们可以使用shell script编写一个程序试下自动化管理。
- 完成追踪与管理系统的重要工作:linux系统中的服务(services)启动的接口是/etc/init.d目录下,目录下的所有文件都是script,这些script可以帮助我们查找系统中相关的设置数据,然后再代入各个服务的设置参数。如想要重新启动注册表文件,可以使用“/etc/init.d/syslogd restart”,syslogd文件就是script。
- 实现简单的入侵检测:当系统有异常时,大多会将这些异常记录在系统记录器(即系统注册表),那么我们可以在固定的几分钟内主动去分析"系统注册表文件",若察觉有问题可以立即加强防火墙的设置规则。因此,我们可以通过shell script去分析当该数据包尝试几次还是连接失败之后就应该拒绝该IP的主机的访问,我们也可以通过shell script实现一个关于抵御攻击软件的shell script。
- 使连续命令单一化:通过shell script将多个简单命令整合,然后直接执行script来启动一连串的命令输入。
- 简单数据的处理:我们可以利用shell script不需要编译的特性,实现简单数据的的处理,如数据的比较,文字数据的查重等作用。
三 shell script的不足
因为shell script使用的外部的命令与hash shell的一些默认工具,同时它常常会回去调用外部的函数库,因此,shell script用在系统管理上是一个很好的工具,但是用在大量数据运算上,shell script的速度就会较慢,且使用cpu的资源较多,造成主机的分配不良。所以shell script一般用来处理服务器的检测。