Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #! /usr/bin/perl
- #
- if ($< != 0) { die }
- if (! $ARGV[0]) { die }
- use strict;
- use DBI;
- sub s_write () {
- (my $cpu = `sensors | grep "(crit" | awk {'print \$2'}`) =~ s/\+(\d+)\..+\n$/$1/;
- chop(my $sda = `smartctl -a /dev/sda | grep Temperature_Celsius | awk {'print \$10'}`);
- chop(my $sdb = `smartctl -a /dev/sdb | grep Temperature_Celsius | awk {'print \$10'}`);
- chop(my $sdc = `smartctl -a /dev/sdc | grep Temperature_Celsius | awk {'print \$10'}`);
- (my $mhz = (grep { /MHz/ } `lscpu`)[0]) =~ s/.+\s(\d+)\..+\n$/$1/;
- chop(my $psa = `ps aux | wc -l | awk {'print \$1'}`);
- chop(my $mem = `free -m | grep - | awk {'print \$3'}`);
- chop(my $swp = `sed 1d /proc/swaps | awk '{ mem += \$4 } END { print mem }'`);
- my $dbh = DBI->connect(
- "DBI:mysql:host=localhost;database=system",
- "system",
- "px0341a"
- ) or die;
- $dbh->do("insert into sensors values (default, $cpu, $sda, $sdb, $sdc, $mhz, $psa, $mem, $swp)");
- $dbh->disconnect;
- }
- sub s_read () {
- my $dbh = DBI->connect(
- "DBI:mysql:host=localhost;database=system",
- "system",
- "px0341a"
- ) or die;
- my $query = $dbh->prepare("select * from sensors");
- $query->execute();
- print "time\t\t\tcpu\tsda\tsdb\tsdc\tmhz\tproc\tmem\tswap\n";
- while (my $r = $query->fetchrow_hashref()) {
- print "$r->{time}\t$r->{cpu}\t$r->{sda}\t$r->{sdb}\t$r->{sdc}\t$r->{mhz}\t$r->{proc}\t$r->{mem}\t$r->{swap}\n";
- }
- $dbh->disconnect();
- }
- s_read() if $ARGV[0] eq "read";
- s_write() if $ARGV[0] eq "write";
Add Comment
Please, Sign In to add comment