diff --git a/BMU SMS/read_sms.pl b/BMU SMS/read_sms.pl new file mode 100644 index 0000000..a9b07b0 --- /dev/null +++ b/BMU SMS/read_sms.pl @@ -0,0 +1,65 @@ +#!/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 () { + chomp; + printf LOGR "$_\n"; + if ($_ =~ /^From: /) { + ($fromnr)=$_=~/^From: ([0-9]*)/; + #print "$fromnr\n"; + } + if ($_ =~ /GETBEREIT/) { + print "GET\n"; + open NR, "<$smsfile"; + $tonr=; + 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;