天天看点

《构建高可用Linux服务器 第3版》—— 第3章 生产环境下的Shell脚本

本节书摘来自华章出版社《构建高可用linux服务器 第3版》一 书中的第3章,第3.1节,作者:余洪春 ,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

虽然shell脚本只是一个简单的解释型语言,不会受到开发人员的重视,但对于我们系统管理员来说它有着举足轻重的作用,它可以帮助我们简化日常的工作并减少工作量,成为系统管理员的瑞士军刀。我们在系统维护工作中用shell脚本常常能比用c语言编写的程序更快地解决相同的问题。此外,shell脚本具有很好的可移植性,有时跨越unix与posix兼容的系统,仅需略作修改,甚至不必修改即可使用shell脚本。

在日常工作中shell脚本能帮助我们做什么呢?

1)配合crontab帮助我们定时执行任务,就像ms的计划任务一样。很多朋友向我反映说crontab不能做秒级的计划任务,其实只要写一个shell脚本,用while..do..done循环后放入后台执行就可以实现秒级的计划任务。不过,为了避免造成死循环,记得要加入sleep 5的代码,这样程序会在执行完毕后休息5秒,也可以说每5秒钟就执行了一次程序。

2)配合php等开发程序进行日常的开发维护工作,比如我们的svn发布程序就是通过php+shell来实现的。

3)它可以成为系统管理员的工具箱,用来解决日常linux/unix环境中遇到的相关问题,例如文本过滤筛选、系统日志分析等。

4)可以写强大的系统性能和状态监控脚本,并配合keepalived来实现系统的高可用。

5)备份和rsync同步重要服务器资料,这是shell的基本功能。

6)自动化安装系统环境,规范化操作,缩减项目实施的时间和误差。

shell的强大和其他未挖掘功能需要我们在日常工作中发现和总结。下面我以线上环境为平台,跟大家分享一下线上服务器的shell脚本。

另外,在跟大家分享shell脚本之前,我先总结一下在linux系统下的编辑工具vim及流编辑器sed的使用方式,还有bash命令行快捷键方式及正则表达式,我们可以用它们来编辑shell脚本。结合这些我们可以写出强大的shell脚本,如果熟练地掌握和运用它们,我们的工作效率会得到很大提高。本章内容适合有shell基础的计算机专业学生、php或java开发人员及linux/unix系统工程师学习。另外,在这里我要感谢所有给我提供生产环境下脚本的朋友们,感谢他们提供了生产环境下的大量实用shell脚本,从而令我们的工作变得如此轻松而有效率。