Files
scripts/BMU SMS/read_sms.pl

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;