#题目:有10 台被监控主机、一台监控机,在监控机上编写脚本,一旦某台被监控机器/ 分区适用率大于80%, 就发邮件报警放到crontab 里面, 每10 分钟检查一次

#测试机器:虚拟机Linux as 4

#1.首先建立服务器间的信任关系。拿两台机器做测试

//本机ip:192.168.1.6
[[email protected] ~]# 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 [email protected]
[[email protected] ~]# cd .ssh/
[[email protected] .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 是公钥文件。

[[email protected] .ssh]# scp id_rsa.pub192.168.1.4:/root/.ssh/192.168.1.6
[email protected]‘s password:
id_rsa.pub 100% 221 0.2KB/s 00:00

这里把公钥文件取名为本机的ip 地址就是为了以后和更多的机器建立信任关系不发生混淆。
现在登陆到192.168.1.4 机器

[[email protected] ~]# cd .ssh/
[[email protected] .ssh]# cat 192.168.1.6 >> authorized_keys

然后回到192.168.1.6 机器直接

[[email protected] .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 进程数
[[email protected] fd]# ps -ef|grep httpd|wc -l
1
时间: 2024-10-14 09:22:07

#题目:有10 台被监控主机、一台监控机,在监控机上编写脚本,一旦某台被监控机器/ 分区适用率大于80%, 就发邮件报警放到crontab 里面, 每10 分钟检查一次的相关文章

检查备份,失败发邮件报警

受朋友的激励,在这写下写下点东西 背景:用shell做的全备,但是可能存在备份失败的情况,所以检查备份(通过检查备份的方式),如果看到有错误就发邮件报警. 备份代码写的很烂,贴上: #!/bin/sh # DFILE=$1 SOCK=$2 DB_NAME=$3 DB_USER="mysqlbak" DB_PASS="***" BCK_DIR="/var/backup/$DB_NAME" FNAME=`date +%Y%m%d_%H%M%S` HO

pyton 编写脚本检测两台主机之间的通信状态,异常邮件通知

最近客户有一个需求要检测两台服务器之间的通信状态.要是通信是失败就需要邮件通知相关人.本来想用shell来实现,shell脚本ping 对端服务器很简单,但是shell的邮件发送比较麻烦,于是使用python实现并且用smtplib模块可以快速实现邮件的发送. 功能如下:1秒钟ping一次目标地址.代码中把你的邮箱改为自己的就可以, 代码: #coding:utf-8 import socket import smtplib import email.MIMEText import email.

dd wipe 命令磁盘清空shell脚本,笔记本台机MAC通用

教程目标:dd wipe 命令磁盘清空shell脚本,笔记本台机MAC通用 日    期:2015年08月20日 联系邮箱:[email protected] Q Q  群:1851 15701 51CTO博客首页:http://990487026.blog.51cto.com 生产需求: 公司人数达到一定数目,就会存在人员流动,然后附属的PC或者Server,MAC当然要彻底清空里面的数据,装好新的windows,linux,MAC系统库存起来,留给下一个准备入职的人员使用. 使用这个脚本能大

脚本要求:两类机器一共300多台,写个脚本自动清理这两类机器里面的日志文件。

要求:两类机器一共300多台,写个脚本自动清理这两类机器里面的日志文件.在堡垒机批量发布,也要批量发布到crontab里面. A类机器日志存放路径很统一,B类机器日志存放路径需要用*匹配(因为这个目录里除了日志外,还有其他文件,不能删除.匹配的时候可用*.log) A类:/opt/cloud/log/   删除7天前的B类: /opt/cloud/instances/  删除15天前的 要求写在一个脚本里面.不用考虑堡垒机上的操作,只需要写出shell脚本. #!/bin/bash dir1=/

发薪当天餐馆老板玩失踪 10员工4万工钱无着落

昨日,在汉阳区鹦鹉洲综合市场一餐馆做厨师的阙先生反映,老板本来说和市场方结算了账目后,就给他们发工钱,可老板的账目结算后,竟迅速离开了市场,他们10名员工共4万元的工钱无着落. 阙先生此前在该市场内的“兴奇餐馆”做厨师.记者昨在市场内看到,餐馆大门紧锁,里面的桌椅还在,显然已经多日没有经营. 阙先生说,餐馆5月开张后,他就到餐馆里做厨师,工资每月3500元,前两个月,他还能正常领取工资.但本月,老板郭某因生意不好,不想继续经营,郭某说16日将餐馆里的东西卖给市场方,就会结清店里10名员工的工资.

java中使用FIFO队列:java.util.Queue实现多台服务器发邮件的代码

代码下载地址:http://www.zuidaima.com/share/1838230785625088.htm 原文:java中使用FIFO队列:java.util.Queue实现多台服务器发邮件的代码 最近由于zuidaima.com注册用户的增多,qq企业邮箱发送邮件会被封禁账号导致注册后面的用户收不到周总结,所以紧急开发了一套多账号,多服务器发送邮件的程序. 大概的设计思路如下: 1.服务器可以无限扩展,但由于qq企业邮箱是限定域名,所以要想多服务器还得有多域名,多账号也不行. 2.最

用shell本检查日志中是否有错,有错则发邮件

#!/bin/bash#初始化环境变量source .bash_profile#日志名中的固有日期格式f_name=`date +%Y%m%d`#日志的路径及名称log_file=/backup/db/rman/log/rman$f_name-0401.logecho $log_file#统计日志文件行数#line_num=`wc -l $log_file|awk '{print $1}'`#echo $line_num#如果日志文件不存在,则直接发送邮件;否则检查文件中是否有erro和Erro

crontab及每15分钟同步服务器的时间

crontab及每15分钟同步服务器的时间 crontab 名称 : crontab 使用权限 : root用户和crontab文件的所有者 语法 : crontab [-e [UserName]|-l [UserName]|-r [UserName]|-v [UserName]|File ] 说明 : crontab 是用来让使用者在固定时间或固定间隔执行程式之用,换句话说,也就是类似使用者的时程表.-u user 是指设定指定 user 的时程表,这个前提是你必须要有其权限(比如说是 roo

linux crontab &amp; 每隔10秒执行一次

linux下定时执行任务的方法  在LINUX中你应该先输入crontab -e,然后就会有个vi编辑界面,再输入0 3 * * 1 /clearigame2内容到里面 :wq 保存退出. 在LINUX中,周期执行的任务一般由cron这个守护进程来处理[ps -ef|grep cron].cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间. cron的配置文件称为"crontab",是"cron table"的简写. 一.cron在3个地方查找配