温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

HELL编程-shell编程实战

发布时间:2020-07-31 05:04:28 来源:网络 阅读:495 作者:xiaobai19887 栏目:移动开发

监控思路、架构介绍

需求: 使用shell定制各种个性化告警工具,但需要统一化管理、规范化管理。

思路:指定一个脚本包,包含主程序、子程序、配置文件、邮件引擎、输出日志等。
主程序:作为整个脚本的入口,是整个系统的命脉。
配置文件:是一个控制中心,用它来开关各个子程序,指定各个相关联的日志文件。
子程序:这个才是真正的监控脚本,用来监控各个指标。
邮件引擎:是由一个php程序来实现,它可以定义发邮件的服务器、发邮件人以及收邮件人。
输出日志:整个监控系统要有日志输出。

要求:我们的机器角色多种多样,但是所有机器上都要部署同样的监控系统,也就说所有机器不管什么角色,整个程序框架都是一致的,不同的地方在于根据不同的角色,定制不同的配置文件。

程序架构:   

                                         (主目录 mon)
                 ____________________|_______________________________
                |              |                    |                       |                             |
               bin          conf            shares                  mail                         log
                |              |                    |                       |                             |
           [main.sh] [ mon.conf] [load.sh 502.sh]  [mail.php mail.sh] [  mon.log  err.log ]

bin下是主程序
conf下是配置文件
shares下是各个监控脚本
mail下是邮件引擎
log下是日志。

监控系统主脚本讲解

 cd /usr/local/sbin/

  mkdir mon

cd mon/

mkdir bin conf mail shares log

ls -l

http://www.apelearn.com/bbs/forum.php?mod=viewthread&tid=8106&highlight=shell%B1%E0%B3%CC

脚本代码论坛

vi main.sh

vi ../conf/mon.conf

监控子脚本load.sh/502.sh讲解

vi ../shares/load.sh

vi ../shares/502.sh

邮件脚本讲解

vi ../mail/mail.php

vi ../mail/mail.php

监控系统整体回顾

crontab -e

cd /usr/local/sbin/mon/bin; /bin/bash main.sh

cat main.sh

1.7 自动登录expect脚本

代码 配置 ··来源论坛

http://www.apelearn.com/bbs/forum.php?mod=viewthread&tid=8113&highlight=shell

yum install -y expect

chmod +x 1.expect

vim 1.expect

./1.expect

自动登陆后执行命令

vim 2.expect

./2.expect

expect脚本传递参数

vim 3.expect

./3.expect

./3.expect root 192.168.1.208 "ls /tmp/12.txe"

./3.expect root 192.168.1.208 "w"

 自动同步文件脚本

yum install -y rsync 客户端安装

vim 4.expect

chmod a+x 4.expect

./4.expect

 指定ip和指定文件同步脚本

vim 5.expect

chmod  a+x 5.expect

 ./5.expect 192.168.1.208 /tmp/12.txt

2.2 构建简易文件分发系统

. 需求背景
对于大公司而言,肯定时不时会有网站或者配置文件更新,而且使用的机器肯定也是好多台,少则几台,多则几十甚至上百台。所以,自动同步文件是至关重要的。

2. 实现思路
首先要有一台模板机器,把要分发的文件准备好,然后只要使用expect脚本批量把需要同步的文件分发到目标机器即可。
3. 核心命令
rsync -av --files-from=list.txt  /  root@host:/

vim 6.expect

chmod  a+x 6.expect

命令批量执行脚本

vim exe.expect

vim exe.sh

chmod a+x exe.expect

2.4 lanmp脚本思路

http://www.apelearn.com/bbs/forum.php?mod=viewthread&tid=8119&highlight=shell%B1%E0%B3%CC

centos6 ,不区分32位,64位, 要求机器可以上外网。 支持lamp 和 lnmp, mysql支持5.1和5.6两个版本,php支持5.3和5.6两个版本,apache2.2,nginx1.8.

脚本局部解析-安装mysql

脚本局部解析-安装mysql

脚本局部解析-安装mysql和httpd

脚本局部解析-安装php

脚本局部解析-安装nginx

2.9 脚本局部解析-安装php-fpm

3.0 执行脚本安装lamp

3.1 再次执行脚本安装lnmp

nagios自定义监控系统磁盘脚本

http://www.apelearn.com/bbs/forum.php?mod=viewthread&tid=8128&highlight=shell%B1%E0%B3%CC6

ls /usr/lib/nagios/plugins/

vim /usr/lib/nagios/plugins/check_disk.sh

echo $?

使用nagios自定义脚本

 vi /etc/nagios/nrpe.cfg

/etc/init.d/nrpe restart 

3.4 zabbix自定义脚本

3.5 使用zabbix自定义脚本











 

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI