Shell Script

 
Thread Tools Search this Thread
Top Forums UNIX for Beginners Questions & Answers Shell Script
# 8  
Old 11-06-2017
If you're running the script in post#3, you should receive a message like
Code:
bash: warning: here-document at line 1 delimited by end-of-file (wanted `$EMP_DETAILS.txt')

You should
- add the here document delimiter
- define the EMP_DETAILS variable
IF IT IS THAT what you want: mail the contents of the here document. If not, reconsider your construct. Right now, it is eating away the second mail command, which, BTW, would not send the resulting text file.
# 9  
Old 11-06-2017
Quote:
Originally Posted by vasuvv
... ... ...

Hi,

It is connecting to the database and creating the .txt files but not getting mails. Pleasr help me with this.

Thanks
Assuming that you have made some changes to the code in post #3 in this thread (based on the comments you have received so far), please show us your current code (in CODE tags). It is hard to guess at what might be wrong if we don't know exactly what your code is doing.
# 10  
Old 11-07-2017
please find below code which am running and Error message and advise.

Code:
FILE="scripts/EMP_FILE.txt"
#FILE="EMP_FILE.$(date +%F_%R).txt"
#touch $FILE

echo $ORACLE_HOME/bin/sqlplus
echo "======== START ============="
 
#$ORACLE_HOME/bin/sqlplus -s scott/tiger@XE  <<EOF
RESULT=`$ORACLE_HOME/bin/sqlplus -silent ${DB_USER}/${DB_DECRYPTED_PASSWORD}@${DB_CONNECTION_STRING} <<ENDA

set pagesize 0 feedback off verify off heading off echo off
column last_business_date format date
SELECT * FROM EMP WHERE DEPTNO IN(10,20);
exit;
ENDA`

echo "$RESULT" > $FILE
#sed -i 's/#^/\n/g' $FILE
sed '/#^/G' $FILE
echo "======== END ============="


## READ AND WRITE THE FILE AND TOOK THE BACKUP
#
FILE1="EMP_FILE.$(date +%F_%R).txt"
{
 while IFS= read -r line
 do
    shnfix "$line"
  done < "$FILE"
} > "emp.backup.$(date +%F_%R).txt"

##this will fetch the number of lines in the file
if [ $(wc -l < "$FILE") -gt 0 ]; then
uuencode EMP_FILE.txt EMP_FILE.txt|mailx -s  "EMPLOYEE DATA FOR DEPT 10 AND 20" "ROBIN@GMAIL.COM" 
fi

Code:
 shnfix: not found [No such file or directory]
 uuencode: not found
 mailx: not found [No such file or directory]

# 11  
Old 11-07-2017
We would hope that you understand how to set the PATH environment variable so that your script can find the mailx, shnfix, and uuencode utilities on your system. I have never heard of shnfix, but the other two should be available on most UNIX and UNIX-like systems. The directories in which they are located, however, varies from system to system.

If is strange that you define a variable named FILE1 but never use it. It is strange that you create a file with a name similar (but sometimes not identical to the pathname assigned to FILE1), but never reference that file after it is created.

We have no idea when you should be using $FILE and when you should be using $FILE1 since we have no idea what shnfix does nor what you want to do with the contents of either of those files in the remainder of your script.

If we knew what operating system and shell you were using, we knew what shnfix does, we knew what you were trying to accomplish with your script, and we knew where the utilities that your script can't find were located; then we might be able to help you fix your script. Without all of this information, we have a MUCH lower chance of being able to fix your script than you do. We presume that you know what the utilities you are invoking are intended to do and that you know what your script is trying to do. Since we don't know those things, how do you expect us to advise you on the proper changes that would make your script do what you want it to do?
# 12  
Old 11-07-2017
As the the query is going to run for every 15 mins, I would like to create a backup file and would like to name it as "EMP_FILE_bkp.txt"

For this it has to read the data from "EMP_FILE.txt" and Write it into "EMP_FILE_bkp.txt".

For this I was trying to write a Loop. I am not sure the command
Code:
SHNFIX

Can you help me to resove Read and write process and mail sending process.

Thanks

---------- Post updated at 03:12 PM ---------- Previous update was at 02:29 PM ----------

Don,

Please ignore my script and suggest me a new code for the below

Below is my requirement.

1.Send in email every 15 minutes from 12 to 3:30 PM. E-mail should only be sent ONLY when below Query have data return ELSE DISPLAY A MESSGAGE NO DATA EXISTED.

2. Email format:

Code:
To: xyz 
 From: abc
 Email Subject: 
 Email content: <data return from below query>

Code:
Query :  SELECT * from EMP where DEPT = 87;

# 13  
Old 11-07-2017
I'd propose you get your act together and present a concise and consistent picture of your problem, answering the questions raised by the various contributors, and make your comments fit the code. How about stripping down your code to the essential steps and test each one independently for errors?
- there's no file called EMP_FILE_bkp.txt in your code
- the "emp.backup.$(date +%F_%R).txt" is written but never used.
- as case IS relevant in *nix code, SHNFIX in not shnfix. Please be careful when quoting.
- What is the purpose of that sed command? Take it out for testing.
# 14  
Old 11-07-2017
Quote:
Originally Posted by DonCragun
Code:
if [ $(wc -l < "$FILE") -gt 0 ]; then

You are right, that was a typo on my part. Thanks for the correction.

Quote:
Originally Posted by vasuvv
Code:
 shnfix: not found [No such file or directory]
 uuencode: not found
 mailx: not found [No such file or directory]

uuencode and mailx are both standard UNIX utilities. They should reside in /bin or /usr/bin on most systems (btw.: care to tell us on which OS you are?) If you have /bin in your PATH (which you should have anyways) that means they are not installed. Get them installed in this case.

In general "executable: not found" can have three reasons and you will have to investigate them yourself because we can't look onto your system:

1) the executable is installed but not in the PATH:
If you have some program /foo/bar/program and you call it with
Code:
program

(that is: without the full path) you need to its respective path included in the PATH statement (actually this is what PATH is for), like this:
Code:
PATH="${PATH}:/foo/bar"

2) the executable is not installed at all
You obviously need to install it, in this case. To find out if it is installed you can run the following command (note that it might run for some while)
Code:
find / -type f -name "your_executable" -print 2>/dev/null

3) the executable is installed but filemodes are wrong
The operating system identifies (potentially) executable files by the filemode, i.e.:
Code:
# ls -l /bin/mailx
-rwxr-xr-x    3 bin      mail         159650 Jan 22 2016  /bin/mailx

The first "x" means that the owner of the file (bin) may execute it. The second "x" means that every member of the group "mail" is allowed to execute it. The third "x" means that every other user is also allowed to execute it.

What you see here for mailx is the default, but some security aficionados tamper with these filemodes and set it to

Code:
# ls -l /bin/mailx
----------    3 bin      mail         159650 Jan 22 2016  /bin/mailx

That means nobody is allowed to do anything (read, write or execute) with this file, not even its owner. It might be that someone deemed mailx or uuecode so dangerous that the only way to deal with this threat was to flag it that way. I have seen such things.

To make it work again you simply need (as root) to reinstate its original filemodes:

Code:
# chmod 755 /bin/mailx
# ls -l /bin/mailx
-rwxr-xr-x    3 bin      mail         159650 Jan 22 2016  /bin/mailx

I hope this helps.

bakunin
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Shell script newbie- how to generate service log from shell script

Hi, I am totally a newbie to any programming languages and I just started an entry level job in an IT company. One of my recent tasks is to create a script that is able to show the log file of linux service (i.e. ntpd service) lets say, if I run my script ./test.sh, the output should be... (3 Replies)
Discussion started by: xiaogeji
3 Replies

2. Shell Programming and Scripting

Pass C shell array to another C shell script(csh) and shell(sh)

Dear Friends, Please help me on this my script name is send.csh In this i have written the statement like this set args = ( city state country price ) I want to pass this array to another c shell called receiver.csh. and i want to use it in this c shell or how to pass to... (2 Replies)
Discussion started by: SA_Palani
2 Replies

3. Shell Programming and Scripting

How to write config shell script to pass variables in master shell script?

Dear Unix gurus, We have a config shell script file which has 30 variables which needs to be passed to master unix shell script that invokes oracle database sessions. So those 30 variables need to go through the database sessions (They are inputs) via a shell script. one of the variable name... (1 Reply)
Discussion started by: dba1981
1 Replies

4. UNIX for Dummies Questions & Answers

How to write Config shell script to pass variables in master shell script?

Dear Unix gurus, We have a config shell script file which has 30 variables which needs to be passed to master unix shell script that invokes oracle database sessions. So those 30 variables need to go through the database sessions (They are inputs) via a shell script. one of the variable name... (1 Reply)
Discussion started by: dba1981
1 Replies

5. Shell Programming and Scripting

Unable to pass shell script variable to awk command in same shell script

I have a shell script (.sh) and I want to pass a parameter value to the awk command but I am getting exception, please assist. diff=$1$2.diff id=$2 new=new_$diff echo "My id is $1" echo "I want to sync for user account $id" ##awk command I am using is as below cat $diff | awk... (2 Replies)
Discussion started by: Ashunayak
2 Replies

6. Shell Programming and Scripting

Correct shell script to Call One shell script from another shell script

Hi All, I have new for shell scripting. Problem : I have one scrip at serv1 and path of server is /apps/dev/provimage/scripts and script name:extract_ancillary.bat. I need to call this script at server2(my working server) and execute at server2 . Please let me know how to build the... (5 Replies)
Discussion started by: Vineeta Nigam
5 Replies

7. Shell Programming and Scripting

call another shell script and pass parameters to that shell script

Hi, I basically have 2 shell scripts. One is a shell script will get the variable value from the user. The variable is nothing but the IP of the remote system. Another shell script is a script that does the job of connecting to the remote system using ssh. This uses a expect utility in turn. ... (2 Replies)
Discussion started by: sunrexstar
2 Replies

8. Shell Programming and Scripting

How to use ssh execute other shell script on other host (shell script include nohup)?

i want use ssh on the host01 to execute autoexec.sh on the host02 like following : host01> ssh host02 autoexec.sh autoexec.sh include nohup command like follwing : nohup /home/jack/deletedata.sh & after i execute ssh host02 autoexec.sh one the host01. i can't found deletedata.sh... (1 Reply)
Discussion started by: orablue
1 Replies

9. Shell Programming and Scripting

invoking a shell script inside cgi shell script

Hi, I have an HTML form through which I get some text as input. i need to run a shell script say script.sh inside a perl-cgi script named main_cgi.sh on the form input. I want to write the contents of the form in a file and then perform some command line operations like grep, cat on the text... (2 Replies)
Discussion started by: smriti_shridhar
2 Replies

10. Shell Programming and Scripting

How to Run a shell script from Perl script in Parent shell?

Hi Perl/UNIX experts, I have a problem in running a shell script from my perl script (auto.pl). I run the perl script using perl auto.pl from the shell prompt The shell script picks the files in "input" folder and procesess it. The shell script blue.sh has this code. export... (16 Replies)
Discussion started by: hifake
16 Replies
Login or Register to Ask a Question