## 服务器登录报警脚本的编写

>[success]要实现的功能,就是当有用户登录服务器时,会自动向指定邮箱发送信息

### 服务器登录报警设置

~~~

#================服务器登录报警脚本============

#!/bin/bash

#登录报警

mkdir /root/tmp &>/dev/null

echo "===================登录用户=======================">>/root/tmp/1.txt

echo "$(whoami)">>/root/tmp/1.txt

echo "===================当前在线用户===================">>/root/tmp/1.txt

echo "$(who)">>/root/tmp/1.txt

echo "===================登录时间=======================">>/root/tmp/1.txt

echo "$(date)">>/root/tmp/1.txt

echo "====================登录IP========================">>/root/tmp/1.txt

echo $(w|sed -n '3p'|awk '{print$3}')>>/root/tmp/1.txt

IP=$(ifconfig eth1 | grep "inet addr" | awk '{ print $2}' | awk -F: '{print $2}')

mail -s "$(date)[IP:$IP]服务器登录报警"yfketang@163.com

rm -f /root/tmp/1.txt

~~~

当用户登录时执行,需要把该脚本放入 /etc/bashrc中,这样当有用户登录服务器时,就会自动发送邮件

可以同时发送到139邮箱一份,因为139邮箱可以设置免费短信提醒功能。

>[danger]在这里要注意,登录报警脚本的位置,这个非常重要!这个脚本的位置一定不要放在/root目录下,否则的话非root用户登录时,就没有权限执行该脚本。最好把该本设置为755权限。

脚本写好后,加入定时任务,执行了,但是获取不到ip地址,ifconfig 和 iptables 没有正常执行:提示如下错误:

~~~

/var/www/data/autosendmail.sh: line 13: ifconfig: command not found

/var/www/data/autosendmail.sh: line 14: iptables: command not found

/var/www/data/autosendmail.sh: line 15: iptables: command not found

~~~

因为没有使用绝对路径,改成/sbin/ifconfig后就好了。(但脚本的通用性就可能出现问题了 —_—! )

应该是定时任务时没有环境变量所至。

### 扩展内容

#### 磁盘监控报警脚本

>[success]定时判断磁盘可用空间大小,当它小于指定阀值时,向管理者邮箱发送报警邮件。

### 本脚本的关健点

#### 1. 获取磁盘可以用空间大小

>[info]通过df -P命令,获取到磁盘情况,然后使用sed,awk,grep等取出所需要的数据。

执行df -P -h命令后,运行结果如下:要判读是根目录的可用空间的百分比,即红框内的值

![](https://box.kancloud.cn/c3008da3adf60772dc0c75f6634d8c38_785x141.png)

取出48%的方式如下:

~~~

# 这样就可以获取到剩余空间的百分比,取值的方式,不至下面这一种方法

[root@localhost ~]# df -P -h |sed -n '/\/dev\/sda1/p'|awk '{print $5}'|awk -F "%" '{print $1}'

~~~

#### 2. 判断是否符合报警条件

在这里会用到if-then语句

命令格式:

~~~

if command

then

commands

fi

~~~

>[danger]if-then语句是不能测试命令退出状态码之外条件的,所以linux中的if-then语句不能直接判断数值比较等。但是linux中提供了tset命令,可以使用它来测试不同条件的用途。

命令格式如下:

~~~

if test condition

then

commands

fi

~~~

bash shell中还提供了另一种条件测试方法,无需在if-then语句中声明test命令。

~~~

if [ condition ] # 中括号内,条件语句的两边要留一个空格

then

commands

fi

~~~

#### 脚本编写

>当根目录可用空间不足50%时,给出警告

~~~

#! /bin/bash

free=$(df -P -h |sed -n '/\/dev\/sda1/p'|awk '{print $5}'|awk -F "%" '{print $1}')

if [ $free -lt 50 ]

then

echo "可用空间为:$free%"| mailx -s "磁盘已满" 576617109@qq.com >/dev/null

fi

~~~

linux 服务器 告警声,服务器登录报警脚本相关推荐

  1. 飞鸽快信微信消息-LINUX服务器告警、状态监控预警、程序报警提醒等消息实时推送工具

    一.产品介绍: 飞鸽快信微信消息是一款基于微信的实时消息推送产品,可应用于服务器告警.LINUX服务器日志.状态监控异常提醒.阀值预警.程序报错报警提醒等场景,使用微信消息代替短信发送警告通知,实现精 ...

  2. Debian8 Linux上安装SSH服务器并配置sshd_config文件启用root ssh登录

    Debian Linux上安装SSH服务器 安装SSH服务器debian Linux允许我们通过ssh协议登录debian服务器.SSH是从远程位置登录debian的首选方法,因为ssh协议通过Int ...

  3. 大数据技术之_01_Linux学习_01_linux的入门+VM和linux的安装+linux的目录结构+远程登录到linux服务器+vi和vim编辑器+开机、重启和用户登录注销+用户管理+用户组管理

    大数据学习之_01_Linux学习_01 1 linux的入门 1.1 Linux的介绍 2 VM和linux的安装 2.1 安装vm和Centos 2.1.1 基本说明 2.1.2 CentOS安装 ...

  4. 腾讯云服务器linux远程登录,腾讯云服务器Linux系统使用SSH工具登录远程教程

    对于大部分网友而言,如果我们选择腾讯云服务器的时候系统用Windows,那大部分网友都会登录的,直接在我们平时使用的WIN电脑远程连接即可操作,而且对于这个可视化操作系统对于经常玩服务器的用户来说也不 ...

  5. 5个Linux服务器一键综合测试性能和配置脚本工具

    我们站长在选择云服务器的时候会浏览看到一些主机评测类网站,基本上看到的评测类网站对于商家和服务器的评测信息都包含各种跑分和测评脚本工具出来的数据.我们很多网友还是比较喜欢用这样的脚本进行给服务器跑分测 ...

  6. 第4章Linux实操篇-远程登录到Linux服务器

    第4章Linux实操篇-远程登录到Linux服务器 文章目录 第4章Linux实操篇-远程登录到Linux服务器 4.1Linux远程登录 4.1.1远程登录Linux-Xshell7 4.2远程上传 ...

  7. Linux服务器设置ssh私钥登录

    服务器居然被黑客通过暴力ssh破解并进行挖矿,本篇文章将讲述如何创建用户私钥,并关闭ssh密码登录 文章目录 1. 创建新用户并创建私钥 2. 对已存在的用户创建私钥 3. 关闭ssh密码登录功能 1 ...

  8. linux的ftp226,ftp服务器 不返回 226

    如何在命令行中使用 ftp 命令上传和下载文件 如何在命令行中使用 ftp 命令上传和下载文件 本文中,介绍在 Linux shell 中如何使用 ftp 命令.包括如何连接 FTP 服务器,上传或下 ...

  9. linux手动安装rsync_Linux服务器之间文件如何实现实时同步传输

    1 最近在做服务器迁移的时候,遇见了一个很头疼的问题.那就是我原本的服务器数据实在是太多了高达250G,而且不能在短时间立马切换.所以需要一个过渡期,但是在此期间又会新增文件或者用户修改文件,那么如何 ...

最新文章

  1. 【Java 2 Platform Enterprise Edition】基础
  2. React 父组件给子组件传值,子组件接收
  3. shell脚本初级教学(从基本脚本开始学起)
  4. Yii CGridView 基本使用(三)关联表相关字段搜索
  5. module ‘open3d‘ has no attribute ‘PointCloud‘
  6. MySQL的FROM_UNIXTIME()和UNIX_TIMESTAMP()函数的区别
  7. 03-20 专项测试-APP 启动性能分析
  8. 算法直观与对模型的理解
  9. mysql5.7多源复制缺点_配置mysql5.7多源复制
  10. Leetcode113.路径和II
  11. 2012—2018年软考中级软件设计师历年真题
  12. 【老生谈算法】matlab实现数字图像复原算法源码——数字图像复原算法
  13. 八个方向调节的云台控制器
  14. 支持udp转发的云服务器,云服务器转发udp原理
  15. 无线网卡芯片类型及与linux-wlan-ng的兼容性
  16. 四、函数的基本概念和使用
  17. 如果机器可以深度学习,人类的学习有何意义
  18. Go语言中Printf和Println的区别
  19. mysql数据库sa默认密码_SQL Server数据库sa密码相关问题的解决方法
  20. potplayer播放完毕后自动删除播放记录,不保留近期播放记录

热门文章

  1. 10.BACNet APDU 编码
  2. “变态”的JavaScript 发明人--布兰登·艾奇
  3. 刀光剑影下,恩怨情仇中的安卓
  4. PLC伺服走位(三菱FX5UPLC伺服控制)
  5. Unsatisfied dependency expressed through bean property ‘sqlSessionFactory‘报错解决
  6. 服装设计网页制作_芒果实习 | 湖南卫视节目制作中心服化部邀你一起造就芒果时尚风向标!...
  7. JVM-虚拟机栈之动态链接
  8. mjpg-streamer移植记录
  9. 双色球机选彩票shell脚本
  10. Celery-4.1 用户指南: Optimizing