Go Back   The UNIX and Linux Forums > Top Forums > UNIX for Dummies Questions & Answers


UNIX for Dummies Questions & Answers If you're not sure where to post a UNIX or Linux question, post it here. All UNIX and Linux newbies welcome !!

Closed Thread    
 
Thread Tools Search this Thread Display Modes
    #1  
Old 06-18-2012
Registered User
 
Join Date: Feb 2012
Posts: 49
Thanks: 2
Thanked 3 Times in 3 Posts
Script not running through cron on solaris 5.8

Hi All,
I am running a script thorugh cron which is given below.
this script is not doing its defined job through cron ,files are still in unzipped state.

But when i run this script as
Code:
./script.sh

it gets executed fine and does all that is required.

also when i run thi script as
Code:
sh script.sh

it gives error


Code:
syntax error at line 24: `(' unexpected


Code:
 
 
YYYYMMDD="`date +%Y%m%d`"       # Reversed date yyyymmdd
REFERENCE=/tmp/reference.${YYYYMMDD}.$$
touch -t ${YYYYMMDD}0000 ${REFERENCE}   # First thing today
echo "\n"
echo "MDCR GZIP LOGS FOR" `date`
func_logs_gzip ()
{
find . -type f \( \( -name 'WLS*' -o -name 'access*' -o -name 'MDCR*' \) -a \( ! -name '*.gz' -a ! -newer ${REFERENCE} \) \) -print | while read FILENAME
do
               gzip "${FILENAME}"
               echo ${FILENAME} gzipped
done

}
func_grease_logs_gzip ()
{
v1=`ls -1rt grease*.gz 2>/dev/null | cut -d "." -f 3 | tail -1`
v2=1
ls -1tr $(find . -type f \( -name 'grease*' -a ! -name '*.gz' -a ! -newer ${REFERENCE} \) -print) 2>/dev/null | while read FILENAME
do
                v1=`expr $v1 + $v2`
                v3=`echo  ${FILENAME} | cut -d "." -f 1,2,3`
               mv ${FILENAME} $v3.$v1
              gzip $v3.$v1
               echo ${FILENAME} gzipped
done
}

#APPLICATIONS LOGS GZIPPING
#wls21
cd /CP2_logs/wls21/SAS/MDCR/Applicationlogs/WLS13
echo "/CP2_logs/wls21/SAS/MDCR/Applicationlogs/WLS13"
func_logs_gzip
#wls22
cd /CP2_logs/wls22/SAS/MDCR/Applicationlogs/WLS13
echo "/CP2_logs/wls22/SAS/MDCR/Applicationlogs/WLS13"
func_logs_gzip
#wls23
cd /CP2_logs/wls23/SAS/MDCR/Applicationlogs/WLS13
echo "/CP2_logs/wls23/SAS/MDCR/Applicationlogs/WLS13"
func_logs_gzip
#wls24
cd /CP2_logs/wls24/SAS/MDCR/Applicationlogs/WLS13
echo "/CP2_logs/wls24/SAS/MDCR/Applicationlogs/WLS13"
func_logs_gzip
#SERVER LOGS GZIPPING FOR WLS13

#wls21
cd /CP2_logs/wls21/SAS/MDCR/Serverlogs/WLS13
echo "/CP2_logs/wls21/SAS/MDCR/Serverlogs/WLS13"
func_logs_gzip

#wls22
cd /CP2_logs/wls22/SAS/MDCR/Serverlogs/WLS13
echo "/CP2_logs/wls22/SAS/MDCR/Serverlogs/WLS13"
func_logs_gzip

#wls23
cd /CP2_logs/wls23/SAS/MDCR/Serverlogs/WLS13
echo "/CP2_logs/wls23/SAS/MDCR/Serverlogs/WLS13"
func_logs_gzip

#wls24
cd /CP2_logs/wls24/SAS/MDCR/Serverlogs/WLS13
echo "/CP2_logs/wls24/SAS/MDCR/Serverlogs/WLS13"
func_logs_gzip

#SERVER LOGS GZIPPING FOR WLS14

#wls21
cd /CP2_logs/wls21/SAS/MDCR/Serverlogs/WLS14
echo "/CP2_logs/wls21/SAS/MDCR/Serverlogs/WLS14"
func_logs_gzip

#wls22
cd /CP2_logs/wls22/SAS/MDCR/Serverlogs/WLS14
echo "/CP2_logs/wls22/SAS/MDCR/Serverlogs/WLS14"
func_logs_gzip

#wls23
cd /CP2_logs/wls23/SAS/MDCR/Serverlogs/WLS14
echo "/CP2_logs/wls23/SAS/MDCR/Serverlogs/WLS14"
func_logs_gzip

#wls24
cd /CP2_logs/wls24/SAS/MDCR/Serverlogs/WLS14
echo "/CP2_logs/wls24/SAS/MDCR/Serverlogs/WLS14"
func_logs_gzip
#GREASE LOGS
cd /apps/docroot3/SAS/MDCRGREASEBATCHES/sasBatches/logs
echo "/apps/docroot3/SAS/MDCRGREASEBATCHES/sasBatches/logs"
n=`find . -type f \( -name 'grease*' -a ! -name '*.gz' -a ! -newer ${REFERENCE} \) -print | wc -l`
if [ n -ne 0 ]
then
func_grease_logs_gzip
fi
 
rm -f "${REFERENCE}"

Sponsored Links
    #2  
Old 06-18-2012
Mead Rotor
 
Join Date: Aug 2005
Location: Saskatchewan
Posts: 16,373
Thanks: 490
Thanked 2,535 Times in 2,418 Posts
You are running your script in a different shell, one which doesn't understand functions and the like. Put a line like
Code:
#!/usr/bin/ksh

at the very beginning of the script to guarantee you get the shell you wanted.
Sponsored Links
    #3  
Old 06-18-2012
...@...
 
Join Date: Feb 2004
Location: NM
Posts: 9,650
Thanks: 164
Thanked 642 Times in 619 Posts
First off, change the shebang (line 1 of your script.sh ) to be

Code:
#!/bin/ksh
or
#/bin/bash

Next, you need to know that the envrionment variable you have on the command line are probably not there for the cron job.

So try something like this (ignore the numbers and stars, just pretend values)

Code:
1 2 3 * * ./home/me/.profile  && /path/to/script.sh

You may need to add other scripts so the environment is correct.
Sponsored Links
Closed Thread

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

More UNIX and Linux Forum Topics You Might Find Helpful
Thread Thread Starter Forum Replies Last Post
Script running using cron ajaincv Shell Programming and Scripting 2 08-08-2011 03:03 AM
Script not running from cron Cvg Solaris 4 02-21-2011 06:19 AM
ftp script is not running from CRON ravi.balley Shell Programming and Scripting 4 09-01-2009 12:04 PM
Running a script with cron altamaha Shell Programming and Scripting 3 06-05-2008 08:46 AM
Running script using cron ankurgupta Shell Programming and Scripting 4 12-12-2002 09:41 AM



All times are GMT -4. The time now is 09:02 PM.