Sponsored Content
Top Forums Shell Programming and Scripting How to send mail at specific calculated time interval? Post 302998631 by bakunin on Monday 5th of June 2017 07:58:35 AM
Old 06-05-2017
Quote:
Originally Posted by nalu
Please help me.
gladly so: First, start by indenting your code. This will help you keep track of the branching. If you throw in some empty lines for better reading all the better:

Code:
v_par=8
num_minutes=10
if [[ $v_par -eq 8 ]] ; then
     last_mail_date1="2017-06-05 01:47:25"
     last_mail_date=$last_mail_date1
     curr_date=$(date +"%Y-%m-%d %H:%M:%S")
     diff_sec=`echo "$(($(date -d "$curr_date" '+%s') - $(date -d "$last_mail_date" '+%s')))"`
     diff_min=`expr $diff_sec / 60`

     if [[ $diff_min -ge  $num_minutes ]]; then
          mail -s "mail sent"
          last_mail_date1=$(date +"%Y-%m-%d %H:%M:%S")
     fi
fi

Second: get rid of these backticks. They are really, positively, definitely OUTDATED sicne about 25 years or so and should not be used any more! The same is true for the ridiculuos expr-statement. Modern shells have learned to do integer artithmetic, so don't use an external program for something the shell can do it itself.

Code:
v_par=8
num_minutes=10
if [[ $v_par -eq 8 ]] ; then
     last_mail_date1="2017-06-05 01:47:25"
     last_mail_date=$last_mail_date1
     curr_date=$(date +"%Y-%m-%d %H:%M:%S")
     diff_sec=$(( $(date -d "$curr_date" '+%s') - $(date -d "$last_mail_date" '+%s') ))
     diff_min=$(( diff_sec / 60 ))

     if [[ $diff_min -ge  $num_minutes ]]; then
          mail -s "mail sent"
          last_mail_date1=$(date +"%Y-%m-%d %H:%M:%S")
     fi
fi

But the real problem is perhaps:

1) You have no "file where the mail text is stored", at lease not in your script (which i suspect is not the read script but an arbitrary part thereof).

2) The mail-command is not sending any real mail, because the mail body is completely missing and so is the receiver.

I hope this helps.

bakunin
 

10 More Discussions You Might Find Interesting

1. Solaris

Time Wait interval

What is the time_wait interval for Solaris 8/9??? and is it configurable??? For example sometimes a clients pc will freeze up dropping the connection, closing the port. The problem is on our side our system still thinks their logged in (until it realizes it dropped on the otherside and drops on... (1 Reply)
Discussion started by: eloquent99
1 Replies

2. Shell Programming and Scripting

Send mail with attachments automatically in a interval period

hai everyone I want to send mail with attachments automatically for every 15 minutes getting different E-mail IDs from a file if any script is available , Please send to me .. This will be very useful for my project.... Thanks for your time..... Felix ... (3 Replies)
Discussion started by: Leo Felix
3 Replies

3. UNIX for Dummies Questions & Answers

Copying files between two time interval

Hi All, I am new to this forum.... Can neone please help me how to copy files between two time intervals i.e. I need to copy files from 6.30 to 9.30 on 5th June 09. Any help is appreciated. (2 Replies)
Discussion started by: Pratik4891
2 Replies

4. Shell Programming and Scripting

how to write a shellscript to send a mail alert to the website user based on license expiration time

hi, i am very much new to shell scripting i have a requirement that i have to develop a License Renewal Alert system that has to give a alert mail to the users before 30days of user account expiration, by checking expiration date of the user with the data base, this system will... (0 Replies)
Discussion started by: deepu_Shscripts
0 Replies

5. UNIX for Advanced & Expert Users

need to configure mail setting to send mail to outlook mail server

i have sun machines having solaris 9 & 10 OS . Now i need to send mail from the machines to my outlook account . I have the ip adress of OUTLOOK mail server. Now what are the setting i need to do in solaris machines so that i can use mailx or sendmail. actually i am trying to automate the high... (2 Replies)
Discussion started by: amitranjansahu
2 Replies

6. Shell Programming and Scripting

Mailing a file at a particular time interval

Folks, I need to send a .log file to my email for every one hour from a server that too only in a particular time period. Is awk mandate here? or can we do it in shell scripting only? Please help me in sorting this out. Cheers, Arun (3 Replies)
Discussion started by: ArunJanga
3 Replies

7. Shell Programming and Scripting

Main script triggers second and it has to run at specific interval

Hi Friends, I am newbie to shell programming and I am stuck trying to accomplish following task.We use Bamboo CI which executes script1 passing parameters. This Main script executes script2 as backend process as part of one of it statements. Task of script2 is to essentially check whether a... (0 Replies)
Discussion started by: aditya206
0 Replies

8. Shell Programming and Scripting

Script that gathers specific values from files and puts it into HTML to send e-mail

Hi All, Sorry for long topic here. So the drill goes like that, I need a script which gathers different values from different files/locations. A_CT=`cat a.dat | awk -F'|' '{print $1}' >> report.txt` B_CT=`cat b.dat | awk -F'|' '{print $3}' >> report.txt` C_CT=`cat c.dat | awk -F'|'... (4 Replies)
Discussion started by: shivakid
4 Replies

9. Red Hat

Script taking more time to send report to mail

Hi, I schedule a script on linux server and it is taking more time say "30 minutes" to send the report via mail. Could you please suggest a way to speed up sending report to mail? OS version -- Red Hat Enterprise Linux Server release 6.5 (Santiago) Regards, Maddy (2 Replies)
Discussion started by: Maddy123
2 Replies

10. UNIX for Advanced & Expert Users

Client was not authenticated to send anonymous mail during MAIL FROM (in reply to MAIL FROM comm

I am having trouble getting mail to work on a red hat server. At first I was getting this message. Diagnostic-Code: X-Postfix; delivery temporarily suspended: connect to :25: Connection refused Then added the port to my firewall. Then I temporarily turned off selinux. I then copied this file... (1 Reply)
Discussion started by: cokedude
1 Replies
MSGCHK(1)							     [nmh-1.5]								 MSGCHK(1)

NAME
msgchk - check for messages SYNOPSIS
msgchk [-date | -nodate] [-notify all/mail/nomail ] [-nonotify all/mail/nomail ] [-host hostname] [-user username] [-sasl] [-saslmech mech- anism] [-snoop] [users ... ] [-version] [-help] DESCRIPTION
The msgchk program checks all known mail drops for mail waiting for you. For those drops which have mail for you, msgchk will indicate if it believes that you have seen the mail in question before. The -notify type switch indicates under what circumstances msgchk should produce a message. The default is -notify all which says that msgchk should always report the status of the users maildrop. Other values for `type' include `mail' which says that msgchk should report the status of waiting mail; and, `nomail' which says that msgchk should report the status of empty maildrops. The -nonotify type switch has the inverted sense, so -nonotify all directs msgchk to never report the status of maildrops. This is useful if the user wishes to check msgchk's exit status. A non-zero exit status indicates that mail was not waiting for at least one of the indicated users. If msgchk produces output, then the -date switch directs msgchk to print out the last date mail was read, if this can be determined. Using POP msgchk will normally check all the local mail drops, but if the option "pophost:" is set in the mts configuration file "mts.conf", or if the -host hostname switch is given, msgchk will query this POP service host as to the status of mail waiting. The default is for msgchk to assume that your account name on the POP server is the same as your current username. To specify a different username, use the `-user username' switch. When using POP, you will normally need to type the password for your account on the POP server, in order to retrieve your messages. It is possible to automate this process by creating a ".netrc" file containing your login account information for this POP server. For each POP server, this file should have a line of the following form. Replace the words mypopserver, mylogin, and mypassword with your own account information. machine mypopserver login mylogin password mypassword This ".netrc" file should be owned and readable only by you. For debugging purposes, there is also a switch -snoop, which will allow you to watch the POP transaction take place between you and the POP server. If nmh has been compiled with SASL support, the -sasl switch will enable the use of SASL authentication. Depending on the SASL mechanism used, this may require an additional password prompt from the user (but the ".netrc" file can be used to store this password). The -saslmech switch can be used to select a particular SASL mechanism. If SASL authentication is successful, inc will attempt to negotiate a security layer for session encryption. Encrypted traffic is labelled with `(encrypted)' and `(decrypted)' when viewing the POP transaction with the -snoop switch. FILES
$HOME/.mh_profile The user profile /etc/nmh/mts.conf nmh mts configuration file /var/mail/$USER Location of mail drop PROFILE COMPONENTS
None SEE ALSO
inc(1) DEFAULTS
`user' defaults to the current user `-date' `-notify all' CONTEXT
None MH.6.8 11 June 2012 MSGCHK(1)
All times are GMT -4. The time now is 05:03 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy