#题目:有10 台被监控主机、一台监控机,在监控机上编写脚本,一旦某台被监控机器/ 分区适用率大于80%, 就发邮件报警放到crontab 里面, 每10 分钟检查一次
#题目:有10 台被监控主机、一台监控机,在监控机上编写脚本,一旦某台被监控机器/ 分区适用率大于80%, 就发邮件报警放到crontab 里面, 每10 分钟检查一次
#测试机器:虚拟机Linux as 4
#1.首先建立服务器间的信任关系。拿两台机器做测试
- //本机ip:192.168.1.6
- [root@codfei ~]# ssh-keygen -t rsa
- Generating public/private rsa key pair.
- Enter file in which to save the key (/root/.ssh/id_rsa):
- /root/.ssh/id_rsa already exists.
- Overwrite (y/n)? y //以为我是第2 次建立关系所以此处覆盖原来的文件)
- Enter passphrase (empty for no passphrase): //直接回车无须输入密钥)
- Enter same passphrase again:
- Your identification has been saved in /root/.ssh/id_rsa.
- Your public key has been saved in /root/.ssh/id_rsa.pub.
- The key fingerprint is:
- 04:37:13:2a:4b:10:af:c1:2b:03:3f:6b:27:ce:b9:62 root@codfei
- [root@codfei ~]# cd .ssh/
- [root@codfei .ssh]# ll
- -rw------- 1 root root 883 Apr 25 17:51 id_rsa
- -rw-r--r-- 1 root root 221 Apr 25 17:51 id_rsa.pub
- -rw-r--r-- 1 root root 442 Apr 25 17:37 known_hosts
id_rsa 是密钥文件,id_rsa.pub 是公钥文件。
- [root@codfei .ssh]# scp id_rsa.pub192.168.1.4:/root/.ssh/192.168.1.6
- root@192.168.1.4's password:
- id_rsa.pub 100% 221 0.2KB/s 00:00
这里把公钥文件取名为本机的ip 地址就是为了以后和更多的机器建立信任关系不发生混淆。
现在登陆到192.168.1.4 机器
- [root@codfei ~]# cd .ssh/
- [root@codfei .ssh]# cat 192.168.1.6 >> authorized_keys
然后回到192.168.1.6 机器直接
- [root@codfei .ssh]# ssh 192.168.1.4
- Last login: Wed Aug 8 12:14:42 2007 from 192.168.1.6
这样就可以了,里面偶尔涉及到权限问题。一般./ssh 文件夹是755 authorized_keys 为600 或者644
- ####脚本如下#######################
- #!/bin/bash
- #SCRIPT:df_check.sh
- #Writeen by codfei Mon Sep 3 07:25:28 CST 2007
- #PURPOSE:This script is used to monitor for full filesystems.
- #######################Begining####################
- ####################
- FSMAX="80"
- remote_user='root' #####完全可以不用root
- remote_ip=(192.168.1.5 192.168.1.6 192.168.1.7 192.168.1.8 192.168.1.9
- 192.168.1.10 192.168.1.11 192.168.1.12 192.168.1.13 192.168.1.14 ) ---->
- # 这里填写你要监控的主机ip
- ip_num='0'
- while [ "$ip_num" -le "$(expr ${#remote_ip[@]} - 1)" ]
- do
- read_num='1'
- ssh "$remote_user"@"${remote_ip[$ip_num]}" df -h > /tmp/diskcheck_tmp
- grep '^/dev/*' /tmp/diskcheck_tmp|awk '{print $5}'|sed 's//%//g' >
- /tmp/diskcheck_num_tmp
- while [ "$read_num" -le $(wc -l < /tmp/diskcheck_num_tmp) ]
- do
- size=$(sed -n "$read_num"'p' /tmp/diskcheck_num_tmp)
- if [ "$size" -gt "$FSMAX" ]
- then
- $(grep '^/dev/*' /tmp/diskcheck_tmp|sed -n $read_num'p' >
- /tmp/disk_check_mail)
- $(echo ${remote_ip[$ip_num]} >> /tmp/disk_check_mail)
- $(mail -s "diskcheck_alert" admin < /tmp/disk_check_mail)
- fi
- read_num=$(expr $read_num + 1)
- done
- ip_num=$(expr $ip_num + 1)
- done
- #############over################################
- ################让脚本每十分钟执行一次#############
- 在cron 表中加入
- 0/10 * * * * /home/codfei/diskcheck.sh 2>&1
- ################################################
- ##########################
- 比如, ext2 文件系统, 如果异常死机,开机如何修复文件系统?
- 如果异常关机,比如断电,通知机房的人开机之后,
- 我们需要远程修复、检查文件系统
- 除了/分区之外, 其他的分区:
- umount /home
- fsck -y /home
- /*
- / 分区需要开机之后, 由机房的人来扫描
- 随后我们再登录并扫描/home 等其他分区
- 如何查看一个进程所使用的文件句柄?
- 看这里面 /proc/进程号/fd/的个数就行了
- */
- #简单的比如如何查看apache 进程数
- [root@localhost fd]# ps -ef|grep httpd|wc -l
- 1
#题目:有10 台被监控主机、一台监控机,在监控机上编写脚本,一旦某台被监控机器/ 分区适用率大于80%, 就发邮件报警放到crontab 里面, 每10 分钟检查一次的更多相关文章
- 自学Zabbix3.10.1.5-事件通知Notifications upon events-媒介类型自定义脚本
自学Zabbix3.10.1.5-事件通知Notifications upon events-媒介类型自定义脚本
- 【转】shell脚本实现多台服务器自动巡检--可参考学习
shell脚本实现多台服务器自动巡检 摘要: 运维服务一个项目二十多台(或者多台)服务器,每天要做服务器的性能巡检工作是查看服务器的CPU.内存.磁盘空间是否在正常值范围内.像 ...
- shell脚本实现多台服务器自动巡检
shell脚本实现多台服务器自动巡检 摘要: 运维服务一个项目二十多台(或者多台)服务器,每天要做服务器的性能巡检工作是查看服务器的CPU.内存.磁盘空间是否在正常值范围内.像这样每天 ...
- php利用crontab执行 5分钟发邮件给用户 (包含每分钟发一次)
php利用crontab执行 5分钟发邮件给用户 一开始设想用shell_exec执行sh 运行 crontab但发现并不可取 因为没办法传变量 (因为要传963529987@qq.com)所以决定采 ...
- 【mysql经典题目】科目成绩都大于80分\每个科目的第一名\总成绩排名
参考:http://blog.csdn.net/lifushan123/article/details/44948135 1.查询出科目成绩都大于80分的学生的名字? drop table if EX ...
- zabbix:以主动模式添加一台受监控主机 (zabbix5.0)
一,zabbix被动模式和主动模式的区别? zabbix-agent默认的模式是被动模式, zabbix agent被动地接受zabbix server发来的指令, 获取数据后再返回给zabbix s ...
- linux crontab & 每隔10秒执行一次
linux下定时执行任务的方法 在LINUX中你应该先输入crontab -e,然后就会有个vi编辑界面,再输入0 3 * * 1 /clearigame2内容到里面 :wq 保存退出. 在LINU ...
- 通过python脚本读取多台虚机硬件信息
主要通过fabric模块实现 import fabric ''' hosts = [] ,): host = "192.168.75." + str(i) hosts.append ...
- 如何在同一台电脑上部署多个tomcat实现多个tomcat在同一台电脑上同时启动
有时候我们在开发的过程中难免会遇到需要在同一台电脑部署多个tomcat,且还要他们能够都单独同时启动不会对其他的tomcat造成影响 本文就简单记录一下,如何来实现这个骚操作 1. 下载tomcat的 ...
随机推荐
- (一)Quartz2.2.1 简单例子
转载至http://blog.csdn.net/a4307515/article/details/46985533 1.关键接口 Scheduler,任务调度的API:它可以用来启动或者终止任务等. ...
- SVN跨服务器自动更新--实现文件分发
目标:SVN版本库提交,服务器中的工作拷贝能自动update. 实现方法:subversion, curl,php脚本实现,并且入mysql库来进行管理.改hosts文件来进行访问!提交触发钩子脚本时 ...
- vijos 小三学算术
描述 小三的三分球总是很准的,但对于数学问题就完全没有想法了,他希望你来帮他解决下面的这个问题:对于给定的n,从1!.2!.3!.…….n!中至少删去几个数,才可以使剩下的数的乘积为完全平方数? 格式 ...
- 只出现一次的数字 [ LeetCode ]
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次.找出那个只出现了一次的元素. 说明: 你的算法应该具有线性时间复杂度. 你可以不使用额外空间来实现吗? 示例 1: 输入: [ ...
- Install Terraform on Windows, Linux and Mac OS
Step-by-step tutorial of how to download and install Terraform on Windows, Linux and Mac OS. Terrafo ...
- 怎样在hibernate的HQL语句中使用mysql 的自定义函数?
问题:怎样在hibernate中使用mysql的函数? 1.hibernate支持原生态的sql语句查询,使用session.createSQLQuery()创建查询对象: 2.怎样在hql中使用my ...
- 深入浅出CSS(二):关于雪碧图、background-position与steps函数的三角恋情
[测试代码] HTML <!DOCTYPE html> <html lang="en"> <head> <meta charset=&qu ...
- 5 Techniques To Understand Machine Learning Algorithms Without the Background in Mathematics
5 Techniques To Understand Machine Learning Algorithms Without the Background in Mathematics Where d ...
- Anagrams by Stack(深度优先搜索)
ZOJ Problem Set - 1004 Anagrams by Stack Time Limit: 2 Seconds Memory Limit: 65536 KB How can a ...
- jieba文本分词,去除停用词,添加用户词
import jieba from collections import Counter from wordcloud import WordCloud import matplotlib.pyplo ...