shell监控脚本一些环境的自动搭建

#监控脚本 实现计算机各个性能数据监控
#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

~

你可能感兴趣的:(shell监控脚本一些环境的自动搭建)