• Perl 采集磁盘信息


    #!/usr/bin/perl
    use HTTP::Date qw(time2iso str2time time2iso time2isoz);
    use strict;
    use Sys::Hostname;
    use DBI;
    my $hostip='10.5.129.243';
    my $dbName = 'orcl';  
    my $dbUser = 'test';  
    my $dbUserPass = 'test';  
    my $dbh = DBI->connect("dbi:Oracle:$dbName", $dbUser, $dbUserPass) or die "can't connect to database ";
    my $cpu_trigger=1.6;
    my $disk_trigger=75;
    my $memory_trigger=40;
    my $io_trigger=70;
    my $cpu_event;
    my $memory_event;
    my $red="e[1;31m";
    my $green="e[1;32m";
    my $yellow="e[1;33m";
    my $normal="e[0m";
    sub section() {
        my $section=shift;
        print ">>>>>$green $section $normal  
    ";
    }
    sub disk_space() {
        §ion("DISK SPACE");
        my $line;
        my @array=`df -PTh | sed '1d'`;
        foreach my $i (@array) {
        my ($fs,$type,$size,$used,$avail,$usage,$mounted);
            chomp $i;
            $i =~ s/(^s+|s+$)//g;
            $i =~ s/s+/ /g;
            ($fs,$type,$size,$used,$avail,$usage,$mounted)=split /s+/,$i;
    my $CurrTime = time2iso(time()); 
    $dbh->do("insert into cpu_info values ('$hostip','$fs','$type','$size','$used','$avail','$usage','$mounted',to_date('$CurrTime','YYYY-MM-DD hh24:mi:ss'))") or die($DBI::errstr);
            substr($usage, -1, 1)="";
            if ($usage > $disk_trigger ) {
                printf("%-36s%-6s%-6s%-6s%-6s${red}%-6s${normal}%s
    ", "$fs",$type,$size,$used,$avail,"$usage%",$mounted);
            } else {
                printf("%-36s%-6s%-6s%-6s%-6s%-6s%s
    ", $fs,$type,$size,$used,$avail,"$usage%",$mounted);
            }
        }
        print "-" x 80 ."
    ";
    $dbh->disconnect();
    }
    disk_space
    

  • 相关阅读:
    抓包工具之Charles
    docker之服务搭建
    Linux之查看开放端口
    Centos7下的开机自启动
    phpredis和predis
    Redis迁移工具之Redis-shake
    服务器间文件实时双向同步(rsync+inotify)
    Linux之轨迹记录(script)
    Redis集群之常用操作
    Redis集群搭建-多服务器
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13351911.html
Copyright © 2020-2023  润新知