用shell脚本定时发短信监控linux系统的运行壮况
作者:网络医生 发布于:2012-4-21 20:36 Saturday 分类:shell
1、很多时候我们不想登录linux系统就想随时随地的了解系统的运行壮况,我们可以写一个脚本定时执行后往手机发一条短信来通知linux系统的运行壮况。
2、脚本内容如下(从我自己的服务器上粘下来的):
vi send.sh
############Begin################
#!/bin/bash
#清空前一次的记录
echo "" > ~/send.txt
echo "Now total on line IP:" >> ~/send.txt
#统计出有多少人线访问
/bin/netstat -ant | grep ESTABLISHED |wc -l >> ~/send.txt
#统计内存使用了多少
echo "Total memory:" >> ~/send.txt
free -m|grep Mem|awk '{print $2}' >> ~/send.txt
echo "Used memory:" >> ~/send.txt
free -m|grep Mem|awk '{print $3}' >> ~/send.txt
#统计出前一天总访问IP数:
echo "Yesterday total access IP:" >> ~/send.txt
find /home/webserver/httpd2.2.14/logs/backup_logs -type f -mtime 1 -exec awk -F "-" '{print $1}' {} \;|sort|uniq|wc -l >> ~/send.txt
cat ~/send.txt | mail -s "blog_server_info" 1384909****@139.com
############END###################
3、在cron里设置定时执行,例:
每天上午11:35执行: 35 11 * * * /root/send.sh
4、设置Linux服务器的名称 hostname num123.com,这样设置后邮箱收到邮件时发件人的地址就是root@num123.com
如果不设置的话发件人的地址格式不正确,怪怪的,这样很多邮件服务器就会拒绝接收这样的邮箱,从面导致发送了但接收不到的现象。
注意:
1、思路很简单,就是用脚本统计出需要的数据,然后写到send.txt文件里面,再用mail命令把send.txt内容发到邮箱里面。这里使用的是移动139邮箱,139邮箱可以收到邮件后免费转发到手机上面。
2、linux系统必须安装sendmail,如果没有安装使用yum install sendmail 即可
3、解释一下,下面这行的意思:
find /home/webserver/httpd2.2.14/logs/backup_logs -type f -mtime -1 -exec awk -F "-" '{print $1}' {} \;|sort|uniq|wc -l >> ~/send.txt
先用find命令找出前一天的日志,用awk列出所有的IP,sort对IP进行归类排序,uniq去掉重复的IP,wc -l 统计出IP总数。
联系方式
-
mail: mail@num123.com
QQ: 76908265
日志分类
随机日志
日历
标签云
最新碎语
- 博客多年没更新了,但一直都在运行。天朝的管制太严格了,今天迁移到香港的服务器上。
2018-07-25 13:51
- 决心一下,行动要快。
2013-09-09 09:02
- 为灾区人民祈福!
2013-04-22 12:45
- 都是停电惹的祸
2013-03-17 20:06
- 假期结束,开始上班。
2012-08-13 07:17
- 堵到机场高速上了
2012-07-13 18:14
- 人生的计划永远赶不上变化。
2012-07-10 18:45
- 接受你所接受的,珍惜你所拥有的。
2012-05-11 14:13
发表评论: