41 lines
1.0 KiB
Plaintext
41 lines
1.0 KiB
Plaintext
|
#!/usr/bin/env perl
|
||
|
# IBM(c) 2007 EPL license http://www.eclipse.org/legal/epl-v10.html
|
||
|
|
||
|
BEGIN
|
||
|
{
|
||
|
$::XCATROOT = $ENV{'XCATROOT'} ? $ENV{'XCATROOT'} : '/opt/xcat';
|
||
|
}
|
||
|
use lib "$::XCATROOT/lib/perl/xCAT_monitoring/rmc";
|
||
|
|
||
|
use strict;
|
||
|
use locale;
|
||
|
|
||
|
use Getopt::Std;
|
||
|
use IPC::SysV qw(IPC_STAT S_IRWXU IPC_PRIVATE IPC_CREAT S_IRUSR S_IWUSR );
|
||
|
use IPC::Msg;
|
||
|
use NodeUtils;
|
||
|
|
||
|
my $m = ord('xcat_rmc');
|
||
|
my $key = IPC::SysV::ftok("/var/adm/ras/errlog", $m);
|
||
|
|
||
|
my $msg = new IPC::Msg($key, IPC_CREAT|S_IRUSR|S_IWUSR );
|
||
|
my $message = join " ", @ARGV;
|
||
|
my $stat = $msg->stat;
|
||
|
my $qcurrentlen = $$stat[5];
|
||
|
if ($qcurrentlen >= 10000) {
|
||
|
if (!-d "/var/opt/xcat_rmc_err_mon/") {
|
||
|
my $cmd = "mkdir -p \"/var/opt/xcat_rmc_err_mon\"";
|
||
|
NodeUtils->runcmd($cmd, -1);
|
||
|
}
|
||
|
open(FILE, ">>/var/opt/xcat_rmc_err_mon/errmsgqueerr.log");
|
||
|
my $sdate = `/bin/date`;
|
||
|
chomp $sdate;
|
||
|
print FILE "$sdate:\n";
|
||
|
print FILE "Can not write the message to queue because the queue is almost full, the message content is: $message\n\n\n";
|
||
|
close FILE;
|
||
|
exit 0;
|
||
|
}
|
||
|
$msg->snd(1, "$message");
|
||
|
|
||
|
exit 0;
|