Shell脚本能帮助我们很方便的去管理服务器,因为我们可以指定一个任务计划定时去执行某一个shell脚本实现我们想要需求。这对于linux系统管理员来说是一件非常值得自豪的事情。现在的139邮箱很好用,发邮件的同时还可以发一条邮件通知的短信给用户,利用这点,我们就可以在我们的linux服务器上部署监控的shell脚本,比如网卡流量有异常了或者服务器web服务器停止了就可以发一封邮件给管理员,同时发送给管理员一个报警短信这样可以让我们及时的知道服务器出问题了。
第一阶段:Linux命令行和shell脚本的基本知识
第一节:linux组成、深入研究Linux内核的功能、bash提示符、man帮助手册、Linux目录结构、文件管理
第二节:进程管理、磁盘管理、文件的归档和压缩、Linux环境变量、命令别名
第三节:Linux输入输出重定向、管道、变量、脚本提示信息
第四节:Linux用户管理、Linux文件权限管理、文本编辑器vim的使用 (实例:监控系统中的所有用户的操作记录,并实时监测系统中具有安全问题的文件)
第五节:文本过滤器grep、文本流式编辑器sed、报表生成器awk (实例:对大型站点的访问日志进行处理,提取用户行为)
第六节:if-then语句、if-then-else语句、if嵌套语句、符合条件检查、case结构的使用(实例:编写一个nginx的服务脚本)
第七节:for循环、while循环、until循环、嵌套循环、文件数据的循环 (实例:编写脚本实时监控公司内的所有主机的在线情况、并实时监控服务器提供的服务是否正常)
第八节:常用的Linux系统信号、捕获Linux系统信号、怎么以后台模式运行脚本、制定Linux的任务计划、Linux脚本编程的函数使用(实例:每天的00:00对mySQL数据库进行备份)
节程第二阶段:高级shell脚本编程(案例实战)
第九节:编写shell脚本实现Hadoop集群的搭建
第十节:编写shell脚本实现mysql高可用集群的安装(corosync+pacemaker+mysql+nfs)
第十一节:编写shell脚本实现lamp架构的lvs net模型负载均衡集群的安装(lvs+apache+mysql+php+nfs)
第十二节:编写bash脚本 实现跳板机,只允许用户执行少量允许的命令
案例需求:
1、很多大公司的服务器都不允许直接登录,而是通过一个跳板机才能登录过去。在跳板机中,通常只能执行几个少数命令(如SSH),而其他命令是不允许执行的,那么怎样才能实现这个功能呢?
2、一些小公司,由于服务器比较少,不需要什么跳板机之类的说法,公司的开发运维人员加起来也就那么十几二十人,通常大家都知道root密码,所有人都是直接root登录上去,但是有时有人由于失误,把什么服务弄挂了,这时是肯定抓不到人的,因为所有人都知道密码,那么怎样才能知道谁都执行过什么命令呢?或者干脆只让他们执行少数允许的命令呢?
第十三节:编写shell脚本监控服务器状态案例
案例需求:为了持续观察服务器每天的基本运行状态,提供方便方便易读的集中的日志记录数据,需要结合shell脚本的任务计划设置,定期记录不同时间段服务器的CPU负载、内存和交换空间、磁盘使用率等各种信息。
1、每隔15分钟记录一次服务器的基本运行状况,包括:CPU负载、内存和交换空间、磁盘空间信息
2、近用户等情况
3、记录当时的时间信息(以YYYY-mm-dd HH:MM的格式输出所有信息追加到文件/var/log/runrec/running.log中)
4、每天晚上00:00分时备份running.log文件;进行压缩备份,保存到/var/log/tuntec目录中;备份的文件名参考:runing.log-YYYYmmdd.tar.bz2;备份完成删除当天的记录文件(running.log)