标签:qq邮箱 mode install check 验证码 book 邮箱 mkdir 介绍
描述:有 100 台centos服务器, 相互之间内网 ssh 互通, 用户名密码已知,服务器ip 列表已知, 请设计一个技术方案,输出磁盘使用率超过 90%的服务器。要求写出详细的技术方案,涉及到的命令和脚本请写好代码,第三方库请介绍安装使用说明。
方案思路:
测试邮箱是否可用
设置定时任务每五分钟执行以下脚本查看占用情况
当发现占用比超过90%发送告警邮件
安装ansible服务,编译yml文件批量执行任务
#这里我们使用qq邮箱作为收件方 vim /etc/mail.rc set bsdcompat set from=xx@qq.com #收件名字 set smtp=smtp.qq.com #smtp地址 set smtp-auth-user=xx@qq.com #收件地址 set smtp-auth-password=xxxxxxx #smtp验证码,在qq邮箱操作,通过手机发送信息获取验证码 set smtp-auth=login #测试 echo "邮件测试(测试内容)" | mail -s "测试结果(主题)" xx@qq.com
vim /server/scripts/df.sh #!/bin/bash >/tmp/disk.log #这里是测试的阈值 D_Value=90 #取出磁盘占比百分比 D_Use=`df -h|grep ‘^/dev‘|awk ‘{print $5}‘|sed ‘s#%##‘` #取出主机私网ip地址 IP_Addr=`/sbin/ifconfig eth1|grep inet|grep -v 127.0.0.1|grep -v inet6|awk ‘{print $2}‘|tr -d "addr:"` for i in $D_Use do if [ $i -ge $D_Value ];then D_Name=`df -h|sed -n ‘/‘"$i"‘/p‘|awk ‘{print $1}‘` D_Part=`df -h|sed -n ‘/‘"$i"‘/p‘|awk ‘{print $6}‘` date>>/tmp/disk.log echo "$IP_Addr服务器的$D_Name(分区$D_Part)使用率超过$D_Value%,当前使用率为$i%。">>/tmp/disk.log fi done if [ -s /tmp/disk.log ];then cat /tmp/disk.log|mail -s "Warning - Used DISK" 1354586675@qq.com fi
crontab -e #每五分钟执行一次脚本 */5 * * * * /server/scripts/df.sh
yum install epel-release -y yum install ansible -y ansible --version #设置主机清单,用序列匹配方法 vim /etc/ansible/hosts [ubantu_server] 172.16.1.[41:100] #分发密钥给100台主机 ssh-keygen ansible ubantu_server -m copy -a "src=/root .ssh/id_rsa.pub dest=/root.ssh" mkdir /etc/ansible/palybook #编写yml文件 vim df.yml - hosts: ubantu_server remote_user: root tasks: - name: 创建脚本目录 file: path: /server/scripts state: directory mode: 0755 - name: 推送脚本 copy: src: /server/scripts/df.sh dest: /server/scripts/ - name: 推送mail配置文件 copy: src: /etc/mail.rc dest: /etc/ force: yes - name: 创建定时任务 cron: name: "Disk percentage check" minute: "*/5" job: "sh /server/scripts/df.sh" #执行剧本 ansible-playbook ubantu.yml
标签:qq邮箱 mode install check 验证码 book 邮箱 mkdir 介绍
原文地址:https://www.cnblogs.com/Mercury-linux/p/12695005.html