Sponsored Content
Full Discussion: Perl script needed
Top Forums Shell Programming and Scripting Perl script needed Post 302515364 by ahamed101 on Wednesday 20th of April 2011 03:45:45 AM
Old 04-20-2011
I also a beginner in perl. Hope this helps. The same could've been done easily in shell.
In the below code, I am still using the system call to send mail. There are perl modules for the mailing.

Code:
#!/bin/perl

my @appname,@date;
my $i=0, $j=0;
my $temp;
open FPR, file or die 'Error : Could not open the file';

while(<FPR>){
  chomp;
  if(/Appname/){
    ($temp, @appname[$i++])=split(/:/);
    @appname[$i-1] =~ s/^ //;
  }
  if(/Date/){
    ($temp, @date[$j++])=split(/Time/);
    @date[$j-1] =~ s/^://;
    @date[$j-1] =~ s/^ //;
  }
}
close(FPR);

open FPW, ">/tmp/mail" or die 'Error : Could not open the file';
for($j=0;$j<$i;$j++){
print FPW "@date[$j] : @appname[$j]\n";
}
close(FPW);

system("cat /tmp/mail | mail -s \"Subject Goes here\" ahamed\@ahamed.com");

unlink "/tmp/mail";

regards,
Ahamed

---------- Post updated at 11:45 PM ---------- Previous update was at 10:56 PM ----------

This will append the alert body also after the TIME:APPNAME.
Tweak it as per your needs


Code:
#!/bin/perl

my @appname,@date,@alerbody,@datalen;
my $i=0, $j=0, $k=0, $l=0, $m=0;
my $temp;
open FPR, file or die 'Error : Could not open the file';
while(<FPR>){
  if(/Alert/){
    $l=$l+1;
  }
  @alertbody[$k++]=$_;
  @datalen[$l]=$k;
  chomp;
  if(/Appname/){
    ($temp, @appname[$l])=split(/:/);
    @appname[$l] =~ s/^ //;
  }
  if(/Date/){
    ($temp, @date[$l])=split(/Time/);
    @date[$l] =~ s/^://;
    @date[$l] =~ s/^ //;
  }
}
close(FPR);
open FPW, ">/tmp/mail" or die 'Error : Could not open the file';
for($j=1;$j<=$l;$j++){
  print FPW "=======================START===============================\n";
  print FPW "@date[$j] : @appname[$j]\n";
  print FPW "===========================================================\n";
  for($i=$m;$i<@datalen[$j];$i++){
    print FPW @alertbody[$i];
  }
  $m=@datalen[$j]+1;
  print FPW "=======================END=================================\n\n";
}
close(FPW);
system("mail -s \"The Earth\" ahamed\@ahamed.com < /tmp/mail");
unlink "/tmp/mail";

regards,
Ahamed
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Script Needed Urgent in shell or PERL!!!!!!!!!!!!!!!!!!!!

My I/p FIle #%npr # { { collectionBeginTime_Date 19Jul2007 granularityPeriod 900 NODEID BSC19 RLC_Raw_Blocksize_CS2 2048 START_DATE 19Jul07 measTimeStamp_Date 20Jul2007 COLLECTION_INTERVAL_MINS 15 RLC_User_Blocksize_CS2 1024 ... (1 Reply)
Discussion started by: aajan
1 Replies

2. Shell Programming and Scripting

Assistance needed with perl script

Ok, theres a log file containing the below. Lets call the logfile log_fantastic: 2009/03/16 21:42:45 USER: tonnabo - MAC: 0014BF2D385A - STATUS_ID: 30 - STATE: ERROR 2009/03/16 21:42:45 USER: tonnabo - MAC: 001310AC120D - STATUS_ID: 15 - STATE: OK 2009/03/16 21:42:45 USER: tonnabo - MAC:... (5 Replies)
Discussion started by: SkySmart
5 Replies

3. Shell Programming and Scripting

Simple Script needed for Processing CSV file perl

I am new to perl, and need a script to pull a CSV file, strip out 2 leading columns, and 2 ending columns, and resave the file in a new location. The file is basic and has less than 10,000 records. Secondly, can I schedule perl scripts to run daily? Can someone provide the basic script to... (1 Reply)
Discussion started by: cobbjob
1 Replies

4. Shell Programming and Scripting

Perl Script Help Needed

I need this script to be able to check both IPs that are given to it and exit with an OK... if one of those expected IPs is returned. The script is run like this: /bin/dns_checker.pl -s 69.34.55.66 -q htt.jababa.com -e 69.44.56.33,45.47.43.55 Right now, the script is failing, but when I... (4 Replies)
Discussion started by: SkySmart
4 Replies

5. Shell Programming and Scripting

Perl script help needed..

Hi, I am new to perl scripting. Can anybody help me in solving the below problem. I have file, which is called map_file. According to map_file's last column data, i need a output file, which has repeats as like the map_file's last column name. Thank you in advance Vasanth (5 Replies)
Discussion started by: vasanth.vadalur
5 Replies

6. Shell Programming and Scripting

Shell or perl script needed

Hi! I have a curl call which gets me the following output: curl http://hostname1.qa.com:8888/getlist OUTPUT - { "token" = "201119041112"; "apps" = { "PaymentApp" = "http://hostname1.qa.com:2333/cgi-bin/Jboss/PaymentApp-EMEA.woa/paymentInfo"; "OrderConsumer" =... (4 Replies)
Discussion started by: jacki
4 Replies

7. Shell Programming and Scripting

shell or perl script needed for ldif file to text file conversion

This is the ldf file dn: sdcsmsisdn=1000000049,sdcsDatabase=subscriberCache,dc=example,dc=com objectClass: sdcsSubscriber objectClass: top postalCode: 29600 sdcsServiceLevel: 10 sdcsCustomerType: 14 givenName: Adelia sdcsBlackListAll: FALSE sdcsOwnerType: T-Mobile sn: Actionteam... (1 Reply)
Discussion started by: LinuxFriend
1 Replies

8. Shell Programming and Scripting

Help needed with Perl Script

i have the following script: #!/usr/local/bin/perl use STUN::Client; use Data::Dumper; use strict; my $stun_client = STUN::Client->new; $stun_client->stun_server('10.59.29.14'); my $r = $stun_client->get; my $ip = $r->{ma_address}; print "IP: $ip\n\nResult (hash):... (5 Replies)
Discussion started by: SkySmart
5 Replies

9. Shell Programming and Scripting

Help needed in calling path file from Perl script.

Hi All, I need help in accessing a path file (path.xyz_pqr) not having a shell shebang and exporting paths in the following syntax, export DB_SCRIPT_PATH="/abc/aash/scripts/db_scripts/xyz_pqr" export SRC_FILES_DIR="/bcd/fdw/incoming/xyz_pqr" I need to use the path contained in the... (8 Replies)
Discussion started by: xtatic
8 Replies

10. Shell Programming and Scripting

Help needed on Perl Script to Handle Log files that are rotated using logrotate

Hello all, I am working on a perl script which will read weblogic logfile and send the error messages to Zenoss Monitoring tool. At present the script works and it can able to send the error messages to Zenoss. The problem comes when the logrotate has been applied to the weblogic log file. At... (3 Replies)
Discussion started by: kar_333
3 Replies
Test::Script(3) 					User Contributed Perl Documentation					   Test::Script(3)

NAME
Test::Script - Basic cross-platform tests for scripts DESCRIPTION
The intent of this module is to provide a series of basic tests for 80% of the testing you will need to do for scripts in the script (or bin as is also commonly used) paths of your Perl distribution. Further, it aims to provide this functionality with perfect platform-compatibility, and in a way that is as unobtrusive as possible. That is, if the program works on a platform, then Test::Script should always work on that platform as well. Anything less than 100% is considered unacceptable. In doing so, it is hoped that Test::Script can become a module that you can safely make a dependency of all your modules, without risking that your module won't on some platform because of the dependency. Where a clash exists between wanting more functionality and maintaining platform safety, this module will err on the side of platform safety. FUNCTIONS
script_compiles script_compiles( 'script/foo.pl', 'Main script compiles' ); The "script_compiles" test calls the script with "perl -c script.pl", and checks that it returns without error. The path it should be passed is a relative unix-format script name. This will be localised when running "perl -c" and if the test fails the local name used will be shown in the diagnostic output. Note also that the test will be run with the same perl interpreter that is running the test script (and not with the default system perl). This will also be shown in the diagnostic output on failure. script_runs script_runs( 'script/foo.pl', 'Main script runs' ); The "script_runs" test executes the script with "perl script.pl" and checks that it returns success. The path it should be passed is a relative unix-format script name. This will be localised when running "perl -c" and if the test fails the local name used will be shown in the diagnostic output. The test will be run with the same perl interpreter that is running the test script (and not with the default system perl). This will also be shown in the diagnostic output on failure. SUPPORT
All bugs should be filed via the bug tracker at <http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Test-Script> For other issues, or commercial enhancement and support, contact the author. AUTHOR
Adam Kennedy <adamk@cpan.org> SEE ALSO
prove, <http://ali.as/> COPYRIGHT
Copyright 2006 - 2009 Adam Kennedy. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. The full text of the license can be found in the LICENSE file included with this module. perl v5.18.2 2009-11-23 Test::Script(3)
All times are GMT -4. The time now is 06:46 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy