Manipulate condition to send mail based on output text in file


 
Thread Tools Search this Thread
Top Forums UNIX for Beginners Questions & Answers Manipulate condition to send mail based on output text in file
# 1  
Old 08-30-2019
Manipulate condition to send mail based on output text in file

Hi All,

I have a working script as below.
Code:
echo "Files loaded with $(cat /var/tmp/script.X1.out)" | mail -s "Files loaded with return code" mailid

This script takes the output from script.X1.out file and appends the text "Files loaded with return code" and sends the email. Now what I want is to append Status as Success or Failure based on return code in the .out file. like as below.
Code:
if script.X1.out contains, Return code 0, then SUCCESS to be appended in the email.
if script.X1.out contains, Return code 2, then FAIL to be appended in the email.

Please help me build this piece of code. Kindly suggest .
Thanks,
Midhun

Last edited by vbe; 08-30-2019 at 08:20 AM.. Reason: code tags! even for so little...
# 2  
Old 08-30-2019
By "append" your mean change the subject line - I think.
Let's tidy up the "script":
Code:
# Assume failure
code="FAIL"
# silently check the input file, if okay change the code
grep -q  'Return code 0' /var/tmp/script.X1.out && code="SUCCESS"
#email with correct code
echo "Files loaded with $(cat /var/tmp/script.X1.out)" | mail -s "Files loaded with return code $CODE" mailid

Note: mailid is a variable - I guess - so it needs a '$' in front of it in that case
Next time you post a question please tell us your OS and shell.
These 2 Users Gave Thanks to jim mcnamara For This Post:
# 3  
Old 09-02-2019
Need to send email for the output saved in the file

HI Jim,

Thanks for your answer. I meant append is referring to content in the email. i.e I have to extract only from the .out file the return code of a ABC.sh script. that I'm handling in another code.
So basically,
"echo "Files loaded with $(cat /var/tmp/script.X1.out)" | mail -s "Files loaded with return code" mailid " -- this code gives the output(return code) from file and send email with subject in quotes.

All I want is
  • if script.X1.out contains, Return code 0, then SUCCESS to be appended after the first pipeline in the email content.
  • if script.X1.out contains, Return code 1, then WARNING to be appended after the first pipeline in the email content.
  • if script.X1.out contains, Return code 2, then FAIL to be appended after the first pipeline in the email content.

script.X1.out value always changes so i'm doing cat from it or i can change it to grep as you suggested. can you please help on the code for the above scenario.

OS : Linux.

Thanks,
Midhun

Last edited by hicksd8; 09-02-2019 at 06:57 AM..
# 4  
Old 09-02-2019
Not sure I get what you want. How far would this get you (assuming your shell, which you fail to mention, being bash):



Code:
RT=(SUCCESS WARNING FAILURE)
echo "Files loaded with ${RT[$(grep -i 'Return code' /var/tmp/script.X1.out) | grep -o [0-9]*)]}"

This User Gave Thanks to RudiC For This Post:
# 5  
Old 09-16-2019
Hi RudiC,
Can you please explain the above code what you replied. How does the above code fetch Return code from file and assign SUCCESS FAIL WARNING based on it ?
# 6  
Old 09-16-2019
The first grep retrieves the line "Return Code n", the second extracts the number n which becomes the result of the "command substitution" which in turn serves as an index into the RT array:
0 ->Success
2 -> Failure
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Read a file and send mail based on grep

Hi All, I am having a job and I need to send email when the job is running. On any other case (success,fail) I don't needed to send email. I check with BMC they told they dont have that in the version I am using. So I created a dependent job and grepped for the status and sent email. My... (1 Reply)
Discussion started by: arunkumar_mca
1 Replies

2. UNIX for Advanced & Expert Users

Group the records based on empno and send mail

Hi All, I have records in a file with name,SSO,openitems,manageremail with | delimited file.Now i want to group the records by SSO and openitems and send email to their manageremail. kiran|1111|draft|aaa@gmail.com guna|2222|reject|bbb@gmail.com kiran|1111|submitter|aaa@gmail.com... (2 Replies)
Discussion started by: kiranparsha
2 Replies

3. Shell Programming and Scripting

Send mail based on a group

Hello Gurus, I have a question. I have a file which has 2 columns and is tab separated and looks like below: FIELD1 FIELD2 Manual m456@hotmail.com Execution din098@gmail.com Artistic m456@hotmail.com Graphic din098@gmail.com FIELD2 values will have always either of the 2 above... (8 Replies)
Discussion started by: Max499
8 Replies

4. Shell Programming and Scripting

Replace text inside XML file based on condition

Hi All, I want to change the name as SEQ_13 ie., <Property Name="Name">SEQ_13</Property> when the Stage Type is PxSequentialFile ie., <Property Name="StageType">PxSequentialFile</Property> :wall: Input.XML <Main> <Record Identifier="V0S13" Type="CustomStage" Readonly="0">... (3 Replies)
Discussion started by: kmsekhar
3 Replies

5. Shell Programming and Scripting

Help with File processing - Adding predefined text to particular record based on condition

I am generating a output: Name Count_1 Count_2 abc 12 12 def 15 14 ghi 16 16 jkl 18 18 mno 7 5 I am sending the output in html email, I want to add the code: <font color="red"> NAME COLUMN record </font> for the Name... (8 Replies)
Discussion started by: karumudi7
8 Replies

6. UNIX for Advanced & Expert Users

send mail script only if condition is met

only wc -l greater than 0 then send email to owner, otherwise do nothing. ie. result=powermt display dev=all|awk '{print $7}'|grep -i dead|wc -l if then echo $result else : fi mailx -s "there is dead path (s)" "mymail@mydomain.com" ----------- it is not working... (2 Replies)
Discussion started by: orafup
2 Replies

7. UNIX for Advanced & Expert Users

Output will send in mail

Hi All, Requirement is to select the data from database and send the output in mail. But the output should in HTML tabular format in mail body. For example my select command is : select ename,esal,edegn,dept from emp where deptno in (10,15); In the mail body the output should : Employee... (3 Replies)
Discussion started by: alex_us
3 Replies

8. Shell Programming and Scripting

Send a mail to IDs listed in a text file

I have a list of mail ids in text file and want a ksh script that reads this text file and sends a mail to all mail ids with same subject line and content. I am using UX-HP machine and KSH. Thanks for help in advance! (5 Replies)
Discussion started by: Sriranga
5 Replies

9. UNIX for Advanced & Expert Users

How to parse through a file and based on condition form another output file

I have one file say CM.txt which contains values like below.Its just a flat file 1000,A,X 1001,B,Y 1002,B,Z ... .. total around 4 million lines of entries will be in that file. Now i need to write another file CM1.txt which should have 1000,1 1001,2 1002,3 .... ... .. Here i... (6 Replies)
Discussion started by: sivasu.india
6 Replies

10. UNIX for Dummies Questions & Answers

Send text file to mail

I have a utility that opens a telnet session and allows me to execute commands through a script. The utility allows me to output to a text file whatever is outputted to screen. This utility runs from a DOS prompt in Windows 95/98, NT or 2000. How can I mail text file this to a certain user. I... (2 Replies)
Discussion started by: petrosi
2 Replies
Login or Register to Ask a Question