66 lines
2.2 KiB
Perl
66 lines
2.2 KiB
Perl
#!/usr/bin/perl
|
|
|
|
use strict;
|
|
|
|
my $path="/usr/lib64/nagios/plugins";
|
|
my $smsfile="$path/sms_receiver";
|
|
|
|
my $smsinpath="/var/spool/sms/incoming";
|
|
my $smsoutpath="/var/spool/sms/outgoing";
|
|
|
|
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime(time);
|
|
my $smssetout="$smsoutpath/setout_" . sprintf("%4d-%02d-%02d_%02d-%02d-%02d", $year+1900, $mon+1, $mday, $hour, $min, $sec);
|
|
my $smsgetout="$smsoutpath/getout_" . sprintf("%4d-%02d-%02d_%02d-%02d-%02d", $year+1900, $mon+1, $mday, $hour, $min, $sec);
|
|
|
|
opendir(DH, $smsinpath) || die "Kann SMS Eingangsverzeichnis nicht oeffnen!\n";
|
|
my $file;
|
|
while(($file = readdir(DH))) {
|
|
next if $file =~ /^\./;
|
|
print "$smsinpath/$file\n";
|
|
my $fromnr;
|
|
my $tonr;
|
|
open SMS, "<$smsinpath/$file" || die "Kann SMS nicht lesen!\n";
|
|
open LOGR, ">>/var/log/read_sms";
|
|
printf LOGR "### %4d-%02d-%02d %02d-%02d-%02d\n", $year+1900, $mon+1, $mday, $hour, $min, $sec;
|
|
while (<SMS>) {
|
|
chomp;
|
|
printf LOGR "$_\n";
|
|
if ($_ =~ /^From: /) {
|
|
($fromnr)=$_=~/^From: ([0-9]*)/;
|
|
#print "$fromnr\n";
|
|
}
|
|
if ($_ =~ /GETBEREIT/) {
|
|
print "GET\n";
|
|
open NR, "<$smsfile";
|
|
$tonr=<NR>;
|
|
close NR;
|
|
open SMS, ">$smsgetout";
|
|
open LOG, ">>/var/log/send_sms";
|
|
printf LOG "### %4d-%02d-%02d %02d-%02d-%02d\n", $year+1900, $mon+1, $mday, $hour, $min, $sec;
|
|
printf SMS "To: $fromnr\n\nAlarme gehen an $tonr";
|
|
printf LOG "To: $fromnr\n\nAlarme gehen an $tonr";
|
|
close SMS;
|
|
close LOG;
|
|
}
|
|
if ($_ =~ /SETBEREIT/) {
|
|
print "SET\n";
|
|
print "Schreibe $fromnr nach $smsfile\n";
|
|
open NR, ">$smsfile";
|
|
printf NR "$fromnr";
|
|
close NR;
|
|
#print "Schreibe SMS an $smssetout\n";
|
|
open SMS, ">$smssetout";
|
|
open LOG, ">>/var/log/send_sms";
|
|
printf LOG "### %4d-%02d-%02d %02d-%02d-%02d\n", $year+1900, $mon+1, $mday, $hour, $min, $sec;
|
|
printf SMS "To: $fromnr\n\nAlarme gehen jetzt an $fromnr";
|
|
printf LOG "To: $fromnr\n\nAlarme gehen jetzt an $fromnr";
|
|
close SMS;
|
|
close LOG;
|
|
}
|
|
}
|
|
close SMS;
|
|
close LOGR;
|
|
unlink "$smsinpath/$file";
|
|
}
|
|
closedir DH;
|