找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
楼主: zyypp

Linux系统监测

[复制链接]

107

主题

4571

回帖

9497

积分

论坛元老

积分
9497
 楼主| 发表于 2009-6-29 01:45:08 | 显示全部楼层
固定时间监测指定TCP端口

此处使用的是张大写的监测程序
[ol]
  • #!/bin/sh
  • LANG=C
  • server_all_list=( \
  • 127.0.0.1:80 \
  • )
  • date=$(date -d "today" +"%Y-%m-%d_%H:%M:%S")
  • send_msg_to()
  • {
  •         if [ $2 = "0" ] || [ $2 = "2" ]; then
  •                 LD_LIBRARY_PATH=. /飞信机器人的路径/fetion --config=sample.conf --index=1 --to=接收用的手机号 --msg-utf8=$1
  •         fi;
  • }
  • server_all_len=${#server_all_list
  • }
  • i=0
  • while  [ $i -lt $server_all_len ]
  • do
  •    server_ip=$(echo ${server_all_list[$i]} | awk -F ':' '{print $1}')
  •    server_port=$(echo ${server_all_list[$i]} | awk -F ':' '{print $2}')
  •    server_message=" "
  •    if curl -m 10 -G http://${server_all_list[$i]}/ > /dev/null 2>&1
  •    then
  •      #status:    0,http down    1,http ok    2,http down but ping ok
  •      status=1
  •            echo "服务器${server_ip},端口${server_port}能够正常访问!";
  •                    server_message="服务器${server_ip},端口${server_port}能够正常访问!";
  •    else
  •        if curl -m 30 -G http://${server_all_list[$i]}/ > /dev/null 2>&1
  •        then
  •            status=1
  •            echo "服务器${server_ip},端口${server_port}能够正常访问!"
  •                    server_message="服务器${server_ip},端口${server_port}能够正常访问!";
  •        else
  •            if ping -c 1 $server_ip > /dev/null 2>&1
  •            then
  •                status=2
  •                echo "服务器${server_ip},端口${server_port}无法访问,但是能够Ping通!";
  •                            server_message="服务器${server_ip},端口${server_port}无法访问,但是能够Ping通!";
  •            else
  •                status=0
  •                echo "服务器${server_ip},端口${server_port}无法访问,并且无法Ping通!";
  •                            server_message="服务器${server_ip},端口${server_port}无法访问,并且无法Ping通!";
  •            fi
  •        fi
  •    fi
  • send_msg_to "${server_message}" "${status}";
  •    let i++
  • done[/ol]复制代码

  • 回复

    使用道具 举报

    107

    主题

    4571

    回帖

    9497

    积分

    论坛元老

    积分
    9497
     楼主| 发表于 2009-6-29 01:45:39 | 显示全部楼层
    代码丢了 等我有时间再补上

    回复

    使用道具 举报

    107

    主题

    4571

    回帖

    9497

    积分

    论坛元老

    积分
    9497
     楼主| 发表于 2009-6-29 01:46:00 | 显示全部楼层
    系统资源使用状况

    [ol]
  • #!/bin/sh
  • LANG=zh_cn
  • 此处使用代码在下面给出请挑选自己需要的信息
  • date=$(date -d "today" +"%Y-%m-%d_%H:%M:%S")
  • ip=$(/sbin/ifconfig | grep "inet addr" | grep -v "127.0.0.1" | awk '{print $2;}' | awk -F':' '{print $2;}' | tr -s '\n' ';')[/ol]复制代码

    DISK使用状况
    [ol]
  • disk=$(df -h | grep "/dev/" | grep -v "tmp" | awk -F'/dev/' '{print $2}' | awk '{print "硬盘总空间为"$2"--已用"$3"--可用"$4"--已用比例"$5}')[/ol]复制代码

    物理内存总大小
    [ol]
  • totalmem=$(/usr/bin/free -m | grep Mem | awk '{print "物理内存共有"$2"MB"}')[/ol]复制代码

    物理内存已使用
    [ol]
  • usedmem=$(/usr/bin/free -m | grep Mem | awk '{print "物理内存已使用"$3"MB"}')[/ol]复制代码

    物理内存空闲
    [ol]
  • freemem=$(/usr/bin/free -m | grep Mem | awk '{print "物理内存空闲"$4"MB"}')[/ol]复制代码

    Cache化内存
    [ol]
  • cachedmem=$(/usr/bin/free -m | grep Mem | awk '{print "Cache化内存"$7"MB"}')[/ol]复制代码

    Swap已使用
    [ol]
  • swapmem=$(/usr/bin/free -m | grep Swap | awk '{print "Swap区共有"$2"MB--已用"$3"MB--空闲"$4"MB"}')[/ol]复制代码

    负载信息
    [ol]
  • load=$(/usr/bin/uptime | awk -F'load average: ' '{print $2}' | awk '{print $1$2$3}')[/ol]复制代码

    网卡流量
    [ol]
  • netRT=$(cat /proc/net/dev | grep "eth0:" | awk -F'eth0:' '{print $2}' | awk '{print $1"已接收的字节--"$9"已传输的字节"}')[/ol]复制代码

  • 回复

    使用道具 举报

    107

    主题

    4571

    回帖

    9497

    积分

    论坛元老

    积分
    9497
     楼主| 发表于 2009-6-29 01:46:27 | 显示全部楼层
    发送信息的结果
    (PS:所发shell本人均在Debian下测试通过,其他的Linux发行本未测试)

    三楼的
    Hi!刚才[00时00分00秒]有人登陆了系统.登陆IP是[127.0.0.1],用户名是[root]

    四楼的(两种结果)
    第一种是
    服务器127.0.0.1,端口80无法访问,但是能够Ping通!

    第二种是
    服务器127.0.0.1,端口80无法访问,并且无法Ping通!

    五楼的
    (此处留空)

    六楼的
    硬盘 DISK
    硬盘总空间为30G--已用2.9G--可用26G--已用比例11%

    我VPS的 free -m 的回显信息
    server:~# free -m
                 total       used       free     shared    buffers     cached
    Mem:           320        314          5          0         55        164
    -/+ buffers/cache:         95        224
    Swap:          511          0        511


    时间 date
    2009-06-29_00:00:00

    IP地址
    127.0.0.1

    物理内存总大小 totalmem
    物理内存共有320MB

    物理内存已使用 usedmem
    物理内存已使用314MB

    物理内存空闲 freemem
    物理内存空闲5MB

    Cache化内存 cachedmem
    Cache化内存164MB

    Swap已使用 swapmem
    Swap区共有511MB--已用0MB--空闲511MB

    负载信息 load
    0.00,0.00,0.00

    网卡流量 netRT
    415355145已接收的字节--282828691已传输的字节

    回复

    使用道具 举报

    107

    主题

    4571

    回帖

    9497

    积分

    论坛元老

    积分
    9497
     楼主| 发表于 2009-6-29 01:46:46 | 显示全部楼层
    PS: 本贴附件均已上传至 Google Code  地址为 http://code.google.com/p/htooy/
    --------------
    PHP探针
    2009-12-15:添加了网卡流量的显示(感谢GDTV的代码帮助)
    2009-12-13晚:添加了php默认支持函数的相关信息
    2009-12-13:完善了CPU信息,添加了一些php信息
    2009-10-24:在页脚添加了代码执行时间的回显
    2009-07-28:在iprober的基础上,增删了部分代码
    --------------
    系统信息实时查看
    工具简介
    本工具使用PHP语言编写,用Json+Ajax的方式,
    使系统相关信息达到无刷新实时回显的目的.
    这个工具可用于查看多个主机的信息.
    文件结构
    jquery.min.js  放置于监控端
    monitor.php    放置于监控端用于查看
    status.php     放置于受控段用于生成信息
    下载后请依次修改
    monitor.php 与 status.php
    这两个文件开头部分设置区中的内容,
    其中已给出注释,可根据注释进行修改.
    修改完直接上传至WEB空间即可.负载信息,空间使用率,真实内存使用率,Swap内存使用率.

    Changes with 0.9                                         12 Feb 2011
          *) Feature: IPv6连接信息-->当前TCP/UDP连接数统计,
                                     当前TCP/UDP连接状态统计,
                                     当前TCP/UDP连接IP显示.
          *) Change:  优化部分代码.

    Changes with 0.8                                          8 Feb 2011
          *) Feature: IPv4连接信息-->当前TCP/UDP连接数统计,
                                     当前TCP/UDP连接状态统计,
                                     当前TCP/UDP连接IP显示.
          *) Change:  优化部分代码.

    Changes with 0.7                                          6 Feb 2011
          *) Bugfix:  物理内存信息-->内存使用率.
                      Swap内存详情-->Swap内存使用率.
          *) Feature: 物理内存信息-->真实已用内存,真实内存使用率.

    Changes with 0.6                                          5 Feb 2011
          *) Feature: 系统时间-->开机时间.

    Changes with 0.5                                          1 Feb 2011
          *) Bugfix:  磁盘信息-->空间使用率.

    Changes with 0.4                                         31 Jan 2011
          *) Bugfix:  两处php短连接格式.

    Changes with 0.3                                         31 Jan 2011
          *) Feature: 网卡信息-->网卡数量,网卡流量.

    Changes with 0.2                                         28 Jan 2011
          *) Feature:  磁盘信息-->剩余空间,总计空间,空间使用率.
                       内存信息-->物理内存详情-->总计内存,已用内存,缓冲区使用,空闲内存,内存使用率.
                                  Swap内存详情-->总计Swap内存,已用Swap内存,空闲Swap内存,Swap内存使用率.
                       负载信息-->一分钟负载,五分钟负载,十五分钟负载,进程.
                       系统时间-->运行时间,空闲时间,服务器时间,北京时间.
                       MySQL状态-->只是简单的测试能否链接.
          *) Security: B/S 简单的安全验证.

    Changes with 0.1                                         20 May 2010
          *) The first version.
             使用json+ajax实现了部分信息实时刷新,此版本为暂未完成的测试版.
    --------------
    系统信息查看
    2009-12-08:重新添加了连接状态信息(已解决无法多行显示bug),并增加了连接IP数统计
    2009-11-02:增加了Inode信息,取消了连接状态信息
    下载后请修改
    $net="eth1:";  //网卡编号
    $disk="/dev/hda1";  //网卡编号
    2009-08-29:可查看当前系统的常用综合信息,主要针对手机
    下载后请修改
    $net="eth0:";  //网卡编号

    --------------
    Linux版在线CMD
    2009-12-12:Linux版的在线CMD,可以执行linux下的基本命令,如果权限够可以执行几乎所有命令,并会自动生成日志
    (PS:PHP必须支持system函数)

    不过需要注意不要执行像 ping 127.0.0.1 这样的不会自动停止的命令,那样将会造成进程永远存在和页面无反应,如需执行可以执行 ping -c 4 127.0.0.1 这样的命令,请一定注意...

    --------------
    php版端口在线检测
    2009-12-20:php版的端口在线检测工具,这里就不多做介绍了,需要的人一看就明白

    代码非我原创,不过原作者不详,我只是在源代码的基础上进行了更改

    --------------
    简单主机工具
    2009-07-28:本工具纯属个人无聊时所写 功能非常不完善 停更


    --------------
    PHP探针  





    (7.41 KB, 下载次数: 546)

    2009-12-15 16:09 上传
    点击文件名下载附件
    PHP探针
    阅读权限: 10



      更新于(2009-12-15)
    PHP探针  





    (7.18 KB, 下载次数: 64)

    2009-12-13 22:15 上传
    点击文件名下载附件
    PHP探针
    阅读权限: 10



      更新于(2009-12-13 晚)
    PHP探针  





    (7.06 KB, 下载次数: 63)

    2009-12-13 10:30 上传
    点击文件名下载附件
    PHP探针
    阅读权限: 10



      更新于(2009-12-13)
    PHP探针  





    (6.55 KB, 下载次数: 112)

    2009-10-24 17:40 上传
    点击文件名下载附件
    PHP探针
    阅读权限: 10



      更新于(2009-10-24)
    PHP探针  





    (6.18 KB, 下载次数: 150)

    2009-7-27 01:40 上传
    点击文件名下载附件
    PHP探针
    阅读权限: 10



      更新于(2009-07-28)
    --------------
    系统信息实时查看





    (41.83 KB, 下载次数: 20)

    2011-2-15 21:41 上传
    点击文件名下载附件
    系统信息实时查看
    阅读权限: 10



      更新于(2011-02-15)
    系统信息实时查看





    (79.5 KB, 下载次数: 6)

    2011-1-31 21:14 上传
    点击文件名下载附件
    系统信息实时查看
    阅读权限: 10



      更新于(2011-01-31)
    系统信息实时查看





    (77 KB, 下载次数: 7)

    2011-1-29 03:14 上传
    点击文件名下载附件
    系统信息实时查看
    阅读权限: 10



      更新于(2011-01-28)(未压缩,上传晚了,光顾着看视频忘记时间了)
    系统信息实时查看





    (80 KB, 下载次数: 57)

    2010-5-25 12:38 上传
    点击文件名下载附件
    系统信息实时查看
    阅读权限: 10



      更新于(2010-05-20)(未压缩,半成品)
    --------------
    系统信息查看





    (6.5 KB, 下载次数: 140)

    2009-12-8 21:13 上传
    点击文件名下载附件
    系统信息查看
    阅读权限: 10



      更新于(2009-12-08)(未压缩)
    系统信息查看





    (1.41 KB, 下载次数: 82)

    2009-11-2 12:18 上传
    点击文件名下载附件
    系统信息查看
    阅读权限: 10



      更新于(2009-11-02)
    系统信息查看





    (1.3 KB, 下载次数: 79)

    2009-8-29 15:09 上传
    点击文件名下载附件
    系统信息查看
    阅读权限: 10



      更新于(2009-08-29)
    --------------
    Linux版php在线CMD




    cmd.zip
    (1.01 KB, 下载次数: 79)

    2009-12-12 15:14 上传
    点击文件名下载附件
    php在线CMD
    阅读权限: 10



    更新于(2009-12-12)
    --------------
    php版端口在线检测




    port.zip
    (1.63 KB, 下载次数: 87)

    2009-12-20 22:10 上传
    点击文件名下载附件
    php版端口检测
    阅读权限: 10



    更新于(2009-12-20)
    --------------
    简单主机工具




    tool.tar.gz
    (15.24 KB, 下载次数: 122)

    2009-7-27 01:40 上传
    点击文件名下载附件
    简单主机工具
    阅读权限: 10



      更新于(2009-07-28)(停止更新,建议不要使用)
    --------------

    [ 本帖最后由 zyypp 于 2011-2-15 21:41 编辑 ]

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    ×
    回复

    使用道具 举报

    1520

    主题

    3万

    回帖

    8万

    积分

    管理员

    积分
    81490
    发表于 2009-6-29 01:47:03 | 显示全部楼层
    做个标记,明天早上早起来看,

    回复

    使用道具 举报

    0

    主题

    113

    回帖

    232

    积分

    中级会员

    积分
    232
    发表于 2009-6-29 01:58:52 | 显示全部楼层
    我都还在编辑呢 你就来看 晕 我下次 早上4点在发帖 我看你还是不是 第一名 嘿嘿
    OK了 完工 洗澡 呼呼 去啦 嘿嘿



    ------------------------------------------------------------------
    以下内容为转载,如有不妥请及时联系马上删除
    Shell 相关
    测试运算
    数值测试运算
    -eq 判断两个数字是否相等,相等返回“0”,不相等返回“1”
    -ge 判断第一个数字是否大于等于第二个数字,大于等于返回0,小于返回“1”
    -gt 判断第一个数字是否大于第二个数字,大于返回“0”,不大于返回“1”
    -le 判断第一个数字是否小于等于第二个数字,小于等于返回“0”,大于返回“1”
    -lt 判断第一个数字是否小于第二个数字,小于返回“0”,不小于返回“1”
    -ne 判断两个数不相等,不相等返回“0” ,相等返回“1”
    字符串运算测试
    string1 = string2   如果两个字符串相等则返回true, 否则返回false。
    string1 != string2  如果两个字符串不相等则返回true, 否则返回false。
    string1 > string2   如果string 1 大于 string2, 则返回true ,否则返回false。
    string1 第58页.
    -u        set-user-id(suid)标志到文件上
            如果运行一个具有root权限的文件,那么运行进程将取得root权限,即使你是一个普通
            用户.[1]这对于需要存取系统硬件的执行操作(比如pppd和cdrecord)非常有用.如果
            没有suid标志的话,那么普通用户(没有root权限)将无法运行这种程序.
            见第58页.
               -rwsr-xr-t    1 root       178236 Oct  2  2000 /usr/sbin/pppd
            对于设置了suid的文件,在它的权限标志中有"s".
    -k        设置粘贴位,见第65页.
            对于"sticky bit",save-text-mode标志是一个文件权限的特殊类型.如果设置了这
            个标志,那么这个文件将被保存在交换区,为了达到快速存取的目的.如果设置在目录
            中,它将限制写权限.对于设置了sticky bit位的文件或目录,权限标志中有"t".
               drwxrwxrwt    7 root         1024 May 19 21:26 tmp/
            如果一个用户并不时具有stick bit位的目录的拥有者,但是具有写权限,那么用户只
            能在这个目录下删除自己所拥有的文件.这将防止用户在一个公开的目录中不慎覆盖
            或者删除别人的文件,比如/tmp(当然root或者是目录的所有者可以随便删除或重命名
            其中的文件).
    -O        你是文件的所有者.
    -G        文件的group-id和你的相同.
    -N        从文件最后被阅读到现在,是否被修改.


    复合测试运算
    逻辑操作包括与、或,分别用“-a” 和 “-o”来表示。

    流程控制语句
    1、顺序执行语句:只要把语句按照逻辑顺序写好,Shell脚本解释器就会顺序地执行这些语句。
    2、条件选择语句
    if then  语句
    if 条件表达式
    then
       语句1
    fi

    if 条件表达式; then
       语句1
    fi


    if then  else 语句
    if 条件表达式; then
       语句1
    else
       语句2
    fi


    if 语句的嵌套语法是:
    if  条件表达式1; then
    语句1
    else
      if 条件表达式2; then
         语句2
      else
         语句3
      fi
    fi


    if elif 语句

    if [ $SYSTEM = "Linux" ] ; then
      echo "Linux"
    elif [ $SYSTEM = "FreeBSD" ] ; then
      echo "FreeBSD"
    elif [ $SYSTEM = "Solaris" ] ; then
      echo "Solaris"
    else
      echo "What?"
    fi

    USER=`who |awk '{ print $1 }'`
    if [ $USER = "root" ] ; then
      echo "root"
    elif [ $USER = "cacti" ] ; then
      echo "cacti"
    elif [ $USER = "nagios" ] ; then
      echo "nagios"
    elif [ $USER = "mysql" ] ; then
    fi


    case 语句 就是一个变量的值与期望的值进行匹配
    case $1 in
    匹配值1)
       语句1
       语句2
       …………
       …………
       ;;
    匹配值2)
       语句3
       语句
       …………
       …………
       ;;
    匹配值3)
       语句5
       语句6
       …………
       …………
       ;;
    esac



    Shell 脚本中的循环语句包括:for 循环、while循环、until循环
    for i  in k  g h
    do
    echo ok

    done

    while ls > /dev/null
    do
    echo ok
    done

    until aa > /dev/null
    do
    echo ok
    done


    函数
    hello () {
    echo ok
    }

    function hello () {
    echo hello
    }

    [ 本帖最后由 zyypp 于 2010-2-18 00:00 编辑 ]  忘记编辑掉了,

    回复

    使用道具 举报

    107

    主题

    4571

    回帖

    9497

    积分

    论坛元老

    积分
    9497
     楼主| 发表于 2009-6-29 01:59:25 | 显示全部楼层
    ....额 发现了 呵呵

    [ 本帖最后由 zyypp 于 2009-6-29 09:56 编辑 ]
    回复

    使用道具 举报

    1520

    主题

    3万

    回帖

    8万

    积分

    管理员

    积分
    81490
    发表于 2009-6-29 09:54:58 | 显示全部楼层
    今晚我打算好好整整这玩意。

    回复

    使用道具 举报

    107

    主题

    4571

    回帖

    9497

    积分

    论坛元老

    积分
    9497
     楼主| 发表于 2009-6-29 10:35:05 | 显示全部楼层
    后面的呢 系统信息 我只写了个 显示信息 没写预警值的判断之类的 呵呵
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    Archiver|手机版|小黑屋|Discuz! X

    GMT+8, 2025-1-11 09:53 , Processed in 0.020969 second(s), 4 queries , Gzip On, Redis On.

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表