溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

HELL編程-shell編程實戰(zhàn)

發(fā)布時間:2020-07-31 05:04:28 來源:網(wǎng)絡 閱讀:490 作者:xiaobai19887 欄目:移動開發(fā)

監(jiān)控思路、架構(gòu)介紹

需求: 使用shell定制各種個性化告警工具,但需要統(tǒng)一化管理、規(guī)范化管理。

思路:指定一個腳本包,包含主程序、子程序、配置文件、郵件引擎、輸出日志等。
主程序:作為整個腳本的入口,是整個系統(tǒng)的命脈。
配置文件:是一個控制中心,用它來開關(guān)各個子程序,指定各個相關(guān)聯(lián)的日志文件。
子程序:這個才是真正的監(jiān)控腳本,用來監(jiān)控各個指標。
郵件引擎:是由一個php程序來實現(xiàn),它可以定義發(fā)郵件的服務器、發(fā)郵件人以及收郵件人。
輸出日志:整個監(jiān)控系統(tǒng)要有日志輸出。

要求:我們的機器角色多種多樣,但是所有機器上都要部署同樣的監(jiān)控系統(tǒng),也就說所有機器不管什么角色,整個程序框架都是一致的,不同的地方在于根據(jù)不同的角色,定制不同的配置文件。

程序架構(gòu):   

                                         (主目錄 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下是各個監(jiān)控腳本
mail下是郵件引擎
log下是日志。

監(jiān)控系統(tǒng)主腳本講解

 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

監(jiān)控子腳本load.sh/502.sh講解

vi ../shares/load.sh

vi ../shares/502.sh

郵件腳本講解

vi ../mail/mail.php

vi ../mail/mail.php

監(jiān)控系統(tǒng)整體回顧

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

自動登陸后執(zhí)行命令

vim 2.expect

./2.expect

expect腳本傳遞參數(shù)

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 構(gòu)建簡易文件分發(fā)系統(tǒng)

. 需求背景
對于大公司而言,肯定時不時會有網(wǎng)站或者配置文件更新,而且使用的機器肯定也是好多臺,少則幾臺,多則幾十甚至上百臺。所以,自動同步文件是至關(guān)重要的。

2. 實現(xiàn)思路
首先要有一臺模板機器,把要分發(fā)的文件準備好,然后只要使用expect腳本批量把需要同步的文件分發(fā)到目標機器即可。
3. 核心命令
rsync -av --files-from=list.txt  /  root@host:/

vim 6.expect

chmod  a+x 6.expect

命令批量執(zhí)行腳本

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 ,不區(qū)分32位,64位, 要求機器可以上外網(wǎng)。 支持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 執(zhí)行腳本安裝lamp

3.1 再次執(zhí)行腳本安裝lnmp

nagios自定義監(jiān)控系統(tǒng)磁盤腳本

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問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI