天天看点

Linux集群和自动化维2.1 Shell和Python语言的简单介绍

<b>第2章</b>

生产环境下的shell和python脚本

接触linux系统十多年了,shell和python脚本都已经完全融入笔者的生活中了。虽然shell脚本只是一个简单的解释型语言,不受开发人员的重视,但对于系统运维工程师来说,它的作用举足轻重,它就像我们的瑞士军刀一样,可以帮助我们简化日常的工作并减少工作量。在系统维护工作中,shell脚本常常能比用c或c++语言编写的程序更快地解决相同的问题,此外,shell脚本具有很好的可移植性,有时跨越unix与posix兼容的系统,只须略作修改即可,甚至不必修改即可使用shell脚本。不过,shell脚本毕竟是一门系统脚本语言,所以很多高级语言的特性它都不具备,比如面向对象和丰富的第三方类库支持,不过这一点我们可以用python脚本来弥补。

<b></b>

<b>2.1 shell和python语言的简单介绍</b>

shell是大家熟悉的一种脚本语言,这里简单介绍下它在日常工作中的应用。

1)配合crontab帮助我们定时执行任务,就像ms的计划任务一样。很多朋友向笔者反映说crontab不能做秒级的计划任务,其实只要写一个shell脚本,用while..do..done循环后放入后台执行就可以实现秒级的计划任务了。不过要记得避免出现死循环的问题。

2)开发nagios监控插件,比如我们的线上的许多业务需求都是通过shell语言开发的。

3)配合iptables可形成方便又安全的iptables脚本,还可保护主机的安全。

4)文本过滤筛选和大数据日志分析,笔者公司的许多离线数据都是通过shell配合python进行分析处理的。

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

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

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

shell的强大和其他未挖掘出的功能需要我们在日常工作中不断地发现和总结,不过,在感叹shell脚本管理功能强大的同时,也应该清楚shell脚本在开发功能上的不足之处,所以这里向大家推荐python,它继承了传统编译语言的强大性和通用性,同时也借鉴了简单脚本和解释语言的易用性,运行速度也不慢,适合于网站开发,正好可以弥补shell脚本的不足。

python是一种动态解释型的编程语言。python功能强大,可支持面向对象、函数式编程,同时还可以在windows、linux和unix等多个操作系统上使用,因此被称为“胶水语言”。python的简洁性、易用性使得开发过程变得简练,特别适用于快速应用开发。笔者也发现,python代码在其所在公司的系统中无处不在,在线上github版本管理库中的比重也长期占据第一、第二的位置,python的具体应用和流行原因在后续章节里会详细说明。