当前位置:   article > 正文

使用crontab定时任务实现服务器磁盘占用监控,同时把数据推送到数据库_将监控服务器数据输出到数据库

将监控服务器数据输出到数据库

shell磁盘容量检查

随着生产服务器的运行,服务器磁盘会被大量的占用,而我们总是被动的被基础设施部门通知服务器磁盘满了需要维护了,这样就很烦,于是就写了个简单的定时任务定时检测磁盘信息,配合运维服务器实现自动预警的功能,由于是内网,所以不能实现自动发短信和发邮件的功能,所以只能这么搞了。

dbuser="root"
dbpsw="root"
localip=$(/sbin/ifconfig | grep 'ens33' -A 1 | grep 'inet' | awk '{ print $2 }')
dateTime=$(date "+%F %T")
total=$(df -lh | grep /dev/mapper/ | awk '{print $2}' | tr -d G)
used=$(df -lh | grep /dev/mapper/ | awk '{print $3}' | tr -d G)
available=$(df -lh | grep /dev/mapper/ | awk '{print $4}' | tr -d G)
rent=$(df -lh | grep /dev/mapper/ | awk '{print $5}' | tr -d "%")
port="3306"
dbIp="192.168.115.131"
mysql -h$dbIp -u$dbuser -p$dbpsw  -e "INSERT INTO study.disk_contain (ip ,create_time,total,used,available,rent) VALUES ('$localip' ,'$dateTime' , $total, $used , $available , $rent );"  >/dev/null 2>&1
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

数据库脚本

CREATE TABLE `disk_contain` (
  `id` int(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
  `ip` varchar(16) CHARACTER SET utf8 DEFAULT NULL COMMENT '服务器ip',
  `create_time` datetime DEFAULT NULL COMMENT ' 创建时间',
  `total` double(3,0) DEFAULT NULL COMMENT '总容量GB',
  `used` double(4,2) DEFAULT NULL COMMENT '已使用GB',
  `available` double(4,2) DEFAULT NULL COMMENT '可使用GB',
  `rent` double(4,2) DEFAULT NULL COMMENT '已使用百分比',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

启动crontab

# crontab -e
//编辑cron 定时器
* * * * * /study/shell/disk_check.sh
  • 1
  • 2
  • 3

查看crontab 运行状态

tail -f /var/log/cron
  • 1

数据落库截图
在这里插入图片描述

遇到的坑

使用ifconfig 命令的时候 shell脚本运行没有问题,但是使用crontab定时执行shell脚本的时候就识别不了ifconfig命令
需要改写成/sbin/ifconfig才能识别

crontab 基本使用

Linux crontab是用来定期执行程序的命令。

当安装完成操作系统之后,默认便会启动此任务调度命令。
。由于cron 是Linux的service(deamon),可以用以下的方法启动、关闭这个服务:
/sbin/service crond start //启动服务
/sbin/service crond stop //关闭服务
/sbin/service crond restart //重启服务
/sbin/service crond reload //重新载入配置

你也可以将这个服务在系统启动的时候自动启动:
在/etc/rc.d/rc.local这个脚本的末尾加上:
/sbin/service crond start

现在cron这个服务已经在进程里面了,我们就可以用这个服务了。

crond 命令每分锺会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。

注意:新创建的 cron 任务,不会马上执行,至少要过 2 分钟后才可以,当然你可以重启 cron 来马上执行。

而 linux 任务调度的工作主要分为以下两类:

1、系统执行的工作:系统周期性所要执行的工作,如备份系统数据、清理缓存
2、个人执行的工作:某个用户定期要做的工作,例如每隔10分钟检查邮件服务器是否有新信,这些工作可由每个用户自行设置

其他使用就自行百度吧,文章多的是

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/75643
推荐阅读
相关标签
  

闽ICP备14008679号