#监控脚本 实现计算机各个性能数据监控
#u=enpls0 是网卡名称 网卡名称不是固定的。定义变量来方便更改
#!/bin/bash
u=enp1s0
ip=$(ifconfig $u | awk '/inet /{print KaTeX parse error: Expected 'EOF', got '}' at position 2: 2}̲') echo "本地IP地址…ip
cpu=$(uptime | awk '{print KaTeX parse error: Expected 'EOF', got '}' at position 3: NF}̲') #awk中NF为当前行的…NF是最后一列
echo “本机CPU最近15分钟的负载是:”
c
p
u
n
e
t
i
n
=
cpu net_in=
cpunetin=(ifconfig $u |awk ‘/RX p/{print $5}’)
echo “入站网卡流量为:”
n
e
t
i
n
n
e
t
o
u
t
=
net_in net_out=
netinnetout=(ifconfig $u | awk ‘/TX p/{print $5}’)
echo “出站网卡流量为:”
n
e
t
o
u
t
m
e
m
=
net_out mem=
netoutmem=(free | awk ‘/Mem/{print $4}’)
echo “内存剩余容量为:”
m
e
m
d
i
s
k
=
mem disk=
memdisk=(df -Th | awk ‘//$/{print $4}’)
echo “根分区剩余容量为:”
d
i
s
k
u
s
e
r
=
disk user=
diskuser=(cat /etc/passwd | wc -l)
echo “本地账号数量为:”
u
s
e
r
l
o
g
i
n
=
user login=
userlogin=(who | wc -l)
#NLMP环境搭建 我这里是自己的RPM包
#gcc pcre-devel opensll-devel 是基础包
#运行nginx是普通用户 这里我自己指定了一个没有解释器的用户 &> 输出导入黑洞
#!/bin/bash执行./configure 脚本时,通过添加–with-模块名的方式启用更多模块,
通过添加–without-模块名的方式禁用不需要的模块
#我这里用的是sslHTTPS实施加密网站 stub_status 显示 Nginx 服务状态
# stream 定义四层集群
#当cd切换失效的时候 source 脚本名称 就可以正常切换
yum -y install gcc pcre-devel openssl-devel
yum -y install php php-mysql php-fpm
yum -y install mariadb mariadb-server mariadb-devel
systemctl start mariadb php-fpm
systemctl enable mariadb php-fpm
useradd -s /sbin/nologin nginx &> /dev/null
tar -xf lnmp_soft.tar.gz
cd lnmp_soft/
tar -xf nginx-1.12.2.tar.gz
cd nginx-1.12.2
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_stub_status_module --with-stream
make && make install
#因实验要求。我需要大量虚拟机来做实验。我这里用expect交互式软件写了自动化一键配置环境脚本
#我里是脚本克隆虚拟机 新建的虚拟机是没有IP的 这里是真机远程配虚拟机IP
#通过 virsh console 加虚拟主机名 可以进入没有IP的
#!/bin/bash
expect << EOF
spawn virsh console $1
expect “]” {send “\r”}
expect “:” {send “root\r”}
expect “密码:” {send “123456\r”}
expect “#” {send “nmcli connection modify eth0 ipv4.method manual ipv4.addresses $2/24 connection.autoconnect yes\r”}
expect “#” {send “nmcli connection up eth0\r”}
expect “#” {send “hostnamectl set-hostname $3\r”}
expect “#” {send “exit\r”}
EOF
sleep 1
#因实验环境有多个yum仓库 为了方便我直接先写好yum仓库文件 然后远程把虚拟机的
#/etc/yum.repos.d/下的文件干掉。然后再写好的yum仓库文件远程传过去
#scp -o StrictHostKeyChecking=no 第一次远程虚报机时免交互
#
expect << EOF
spawn scp -o StrictHostKeyChecking=no scp /root/桌面/lnmp_soft.tar.gz root@$2:/root/
expect “password” {send “123456\r”}
spawn ssh $2
expect “password” {send “123456\r”}
expect “#” {send "rm -rf /etc/yum.repos.d/\r"}
expect “#” {send “exit\r”}
spawn scp -o StrictHostKeyChecking=no scp /root/yum.repo $2:/etc/yum.repos.d/
expect “password:” {send “123456\r”}
expect “#” {send “exit\r*”}
EOF
~
#上面的yum仓库 cat /etc/yum.repos.d/yum.repo
[192.168.4.254_rhel7]
name=added from: ftp://192.168.4.254/rhel7
baseurl=ftp://192.168.4.254/rhel7
enabled=1
gpgcheck=0
[hare_MON]
name=added from: ftp://192.168.4.254/share/MON
baseurl=ftp://192.168.4.254/share/MON
gpgcheck=0
enabled=1
[192.168.4.254_share_OSD]
name=added from: ftp://192.168.4.254/share/OSD
baseurl=ftp://192.168.4.254/share/OSD
gpgcheck=0
enabled=1
[192.168.4.254_share_Tools]
name=added from: ftp://192.168.4.254/share/Tools
baseurl=ftp://192.168.4.254/share/Tools
gpgcheck=0
enabled=1
~