Shell Script

 
Thread Tools Search this Thread
Top Forums UNIX for Beginners Questions & Answers Shell Script
# 15  
Old 11-07-2017
Quote:
Originally Posted by Don Cragun
Code:
if [ $(wc -l < "$FILE") -gt 0 ]; then

Would a neater way be to test if the file is null or not? Does it really depend if you file has data or not? If you file does not have separate records and/or one at the end, you might still get the record count of zero, for example:-
Code:
$ printf "Hello unix.com" | wc -l
0
$

If you just want to test for the file size being zero or not, you could try:-
Code:
if [ -s "$FILE" ] ; then .......

This statement is to check "If $FILE exists and has a size greater than zero, then ....."

You might also want to check if the file can be read first with a similar statement, but using the -r test operator. If you need to update the file when your processing is complete, you can check if you can write to it with the -w operator. Have a look and man test for the other options.


Just my thoughts. I hope that this helps,
Robin
These 4 Users Gave Thanks to rbatte1 For This Post:
# 16  
Old 11-08-2017
Can you guide me how to schedule the script which will run between 12 to 3:30?

then only it has to count the data from the file.. please advise.
# 17  
Old 11-08-2017
Quote:
Originally Posted by vasuvv
Can you guide me how to schedule the script which will run between 12 to 3:30?
I already told you in post #2: use a crontab entry. You can easily find out how to do that by reading the man page of cron and/or crontab respectively. I already told you so in post #2 too.

Could you - instead of asking repeatedly the same question - actually do what is suggested?

I hope this helps.

bakunin
# 18  
Old 11-09-2017
Code:
#!/bin/ksh


to = "test@gmail.com"
from = "robin@gmail.com" 
subject= "mesg is mailing" 


DB_DECRYPTED_PASSWORD='xyts'; --Need advise to hide the password
DB_CONNECTION_STRING="(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=$DB_HOST)(PORT=$DB_PORT))(CONNECT_DATA=(SERVICE_NAME=$DB_SID)))"
RERUN=$5
PATH=$PATH:$ORACLE_HOME/bin

echo "---------------------------------------------------"
echo  ENVIRONMENT = $ENV;
echo  DB_HOST =  $DB_HOST
echo  DB_PORT =  $DB_PORT  
echo  DB_USER =  $DB_USER
#echo  DB_PASSWORD =  $DB_PASSWORD
#echo  DB_DECRYPTED_PASSWORD =  $DB_DECRYPTED_PASSWORD
echo  DB_SID =  $DB_SID
echo  DB_CONNECTION_STRING = $DB_CONNECTION_STRING
echo "---------------------------------------------------"  


##################################################


FILE="/usr/jobs/emp_details.txt"
#FILE="emp_details.$(date +%F_%R).txt"
#touch $FILE

echo $ORACLE_HOME/bin/sqlplus
echo "======== START ============="

#$ORACLE_HOME/bin/sqlplus -s scott/tiger@ABC  <<EOF
RESULT=`$ORACLE_HOME/bin/sqlplus  -silent ${DB_USER}/${DB_DECRYPTED_PASSWORD}@${DB_CONNECTION_STRING} <<ENDA
 
 while true
  do
  15 12 * * * /usr/jobs/emp_details.txt
  30 15 * * * /usr/jobs/emp_details.txt
  sleep 900
  done
  
 set pagesize 0 feedback off verify off heading off echo off
column last_business_date format date
<SELECT QUERY> ;
exit;
ENDA`

echo "$RESULT" > $FILE
sed '/#^/G' $FILE
echo "======== END ============="

## READ AND WRITE THE FILE AND TOOK THE BACKUP
 while IFS= read -r line
 do
echo "$line" >> "emp_details.backup.$(date +%F_%R).txt"
done < "$FILE"

##this will fetch the number of lines in the file

if [ $(wc -l < "$FILE") -gt 0 ]; then

cat <<EOF; mailx -s "$subject" -r "$from"  "$to" < "/usr/jobs/emp_details.txt"

fi

suggest to hide the password and correct the code.

Thanks.
# 19  
Old 11-09-2017
Your code does not match your stated requirements.

Since we do not have your environment, your databases, and still( after asking multiple times) do not even know what operating system you're using, it is difficult to correct your code when we can't see the errors you're getting.

All that we can do to help you is to ask questions that might help us help you fix your code. But, since you refuse to answer most of our questions, I have no confidence there is much we can do to help you:
  1. What operating system are you using?
  2. What errors are you getting when you run the code shown in post #18?
  3. In post #12 you say you want a backup file named EMP_FILE_bkp.txt, your code in post #18 produces a backup filename of the form emp_details.backup.YYYY-MM-DD_HH:MM.txt. Why the discrepancy in your requirements?
  4. Why do you have a cat in your script reading from an unterminated here-document?
  5. You need to submit crontab entries to cron's scheduler using the crontab utility. The Korn shell can't execute crontab entries!
  6. Please explain what you are trying to do with the command: sed '/#^/G' $FILE. The BRE in that address can't match any lines???
  7. Why are you still using wc instead of a test -s to determine whether or not you have data to send in a mail message?
You can choose to answer the above questions in your next post, or we can choose to close this thread. Please help us help you by answering the questions above.
This User Gave Thanks to Don Cragun For This Post:
# 20  
Old 11-09-2017
What operating system are you using?
Code:
 LINUX

What errors are you getting when you run the code shown in post #18?
Code:
 not getting any errors but Unable to send Mail with attachement and unable to schedule the job to run in given time intervals.Tried with CRON as am new to these written code wrongly.

In post #12 you say you want a backup file named EMP_FILE_bkp.txt, your code in post #18 produces a backup filename of the form emp_details.backup.YYYY-MM-DD_HH:MM.txt. Why the discrepancy in your requirements?

Code:
 have modified the code to create a backup file the the given format and the file is fetting generated without any issues'

Why do you have a cat in your script reading from an unterminated here-document?
Code:
as gone through the google search gave to see the content of the file. Am sure Its not required.

You need to submit crontab entries to cron's scheduler using the crontab utility. The Korn shell can't execute crontab entries!
Code:
as I have lack of knowledge after googling I gave this nut am not sure how it will work. it would be great if I get from you to write the script properly.

Please explain what you are trying to do with the command: sed '/#^/G'
$FILE. The BRE in that address can't match any lines???
Code:
I am not sure what this command will do..

Why are you still using wc instead of a test -s to determine whether or not you have data to send in a mail message?

Here Again posting my requirement.
[code]

1. Have SQL query. The query should run every day between 12 pm - 3PM for every 15 minutes.
2. within thise duration it has to create backup files.
3. If the query returns any data then need to send a mail with that output file as attachment else no need to send a mail.

If would be great if I get complete script as I tried but failing in writing the script.

Thanks,
Vasu
# 21  
Old 11-09-2017
I won't interfere with what DonCragun already does here, but this:
Quote:
Originally Posted by vasuvv
as I have lack of knowledge after googling I gave this nut am not sure how it will work. it would be great if I get from you to write the script properly.
was my suggestion. I TOLD YOU TO READ THE MAN PAGE OF cron and crontab and if you had done that (instead of googling for recipes) you perhaps would have by now understood how it works.

Sorry, but some things need a certain level of understanding before they can successfully be attempted. "Tell me how to drive a nail in" might work, even if the person never had a hammer in his hands before, but "tell me how to do open-heart surgery" will not equally work for people who are not already fully-qualified surgeons in first place. And even then it is doubtful.

UNIX is not open-heart surgery, but it is not hammer and nail either. Some things you can't just click together. You need to understand what you are doing because you need to (intelligently) make decisions while you do it and these decisions can't all be prefabricated.

So, for the umpteenth time now, execute the two (three) commands:

Code:
man cron
man crontab
man 5 crontab

and read what is written there.

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