Problem with Cron


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Problem with Cron
# 1  
Old 05-05-2009
Problem with Cron

Hi i am new here and have a quick question.

i am receiving ./project.sh: line 12: syntax error near unexpected token `newline'
./project.sh: line 12: `echo "`date +"%F %R"` `md5sum /etc/passwd`" >> '

error message
here is my script. could you please help!

#!/bin/bash
# PROGRAM: project.sh
# OBJECTIVE: Log changes
# AUTHOR:
# DATE: May 2009
#
MYDIR=$HOME/bin
MYLOGDIR=$MYDIR/logs
#
echo "`date +"%F %R"` `wc /etc/passwd`" >> $MYLOGDIR/checkpasswd_wc.txt
#
echo "`date +"%F %R"` `md5sum /etc/passwd`" >> $MYLOGDIR/checkpasswd_md5.txt
#
echo " " >> $MYLOGDIR/passwd_file.txt
echo `date +"%F %R"` >> $MYLOGDIR/passwd_file.txt
more /etc/passwd >> $MYLOGDIR/passwd_file.txt
echo " " >> $MYLOGDIR/passwd_file.txt
echo " " >> $MYLOGDIR/passwd_file.txt
#
echo "`date +"%F %R"` `df -v |grep /home2`" >> $MYLOGDIR/check_ds.txt
#
echo " " >> $MYLOGDIR/checkds_all.txt
echo "`date +"%F %R"`" >> $MYLOGDIR/checkds_all.txt
df -v >> $MYLOGDIR/checkds_all.txt
echo " " >> $MYLOGDIR/checkds_all.txt
echo " " >> $MYLOGDIR/checkds_all.txt
#
#
# 2  
Old 05-05-2009
I can't see why cron is objecting but I would capture the date in a variable and then use the string where the script is currently calling date(1) to make the lines less complicated and only call date(1) once, e.g.:
Code:
DATESTR=`date +"%F %R"`
#
echo "${DATESTR} `wc /etc/passwd`" >> $MYLOGDIR/checkpasswd_wc.txt
#
echo "${DATESTR} `md5sum /etc/passwd`" >> $MYLOGDIR/checkpasswd_md5.txt

This also avoids nested speech marks which can cause grief.

HTH
# 3  
Old 05-05-2009
that worked thanks. just made a variable for the date and switched it out and it worked. Thanks for the help!
# 4  
Old 05-06-2009
Even though am not able to find out how you are calling this bash script.

I could able to realize that, when you use the % in the crontab it will be taken as newline, you can find more info by googling as percentage + cron - Google Search...

from a comment in Andrew Beacock's Blog: Having cron troubles with percent (%) signs in crontabs?

Code:
Percent-signs (%) in the command, unless escaped with backslash (\), will be changed into newline characters, and all data after the first % will be sent to the command as standard input.

# 5  
Old 05-06-2009
You can't nest double quotes. This caused the syntax error.

Quote:
echo "`date +"%F %R"` `wc /etc/passwd`" >> $MYLOGDIR/checkpasswd_wc.txt
Code:
echo "`date +'%F %R'` `wc /etc/passwd`" >>$MYLOGDIR/checkpasswd_wc.txt

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Execution problem with Cron: Script works manually but not w/Cron. Why?

Hello gurus, I am making what I think is a simple db2 call from within a shell script but I am having difficulty producing the desired report when I run the script shown below from a shell script in cron. For example, my script and the crontab file setup is shown below: #!/bin/ksh db2... (3 Replies)
Discussion started by: okonita
3 Replies

2. Solaris

Problem with cron

Just wanted to know, what happens if a user exists in both files cron.allow and cron.deny. Will the user be able to set cron? Thanks, Deepak (7 Replies)
Discussion started by: naw_deepak
7 Replies

3. UNIX for Dummies Questions & Answers

Cron Problem

Hello folks, I've got a few cron jobs listed under a particular user id. They are running fine but then they are creating a new process every time they are running. Any idea folks? (3 Replies)
Discussion started by: King Nothing
3 Replies

4. UNIX for Dummies Questions & Answers

cron problem

I'm using Red Hat and I need to get cron working and I'm not sure what the problem is. As a test I've done the following: 1) In /etc/cron.d I've created a file called date with the following contents 2) */1 * * * * root date >> /root/thedate 3) This works perfectly. It sends the date every... (1 Reply)
Discussion started by: kerpm
1 Replies

5. Shell Programming and Scripting

cron problem

Hi frnds... I m facing very irritating problem already waisted my 2 days.. I have a following script..( i am pasting only the main code) ftp -ivn 213.194.40.77 <<FTP user $user $password binary cd $FileDir/out lcd $localpath get $file rename $FileDir/out/$file $FileDir/tmp/$file... (7 Replies)
Discussion started by: clx
7 Replies

6. UNIX for Dummies Questions & Answers

Cron problem

Hi, I've just done a school boy error. I was trying to edit the crontab but instead of using: crontab -e I used crontab -r without realising. Then went to look at the crontab but ntohing their. Looked int he manual and -r removed the crontab. Is their any way of getting this back?? ... (3 Replies)
Discussion started by: tez
3 Replies

7. UNIX for Advanced & Expert Users

cron problem!

The cron daemon on one of my HP boxes is giving the following error: I checked the queuedefs man page, and it has left me a bit confused. The man page says: So this means that no more than 100 cronjobs can be run at one time (we do not use at and batch on this system). The... (4 Replies)
Discussion started by: blowtorch
4 Replies

8. AIX

Problem with cron

Hi all I am trying to run a job via cron, however it does not execute. The cron log file has the following lines in it. When I run the command at CL, it works. root : CMD ( su - JHOps -c $JHOPSROOT/exe/JHOPS15MIN.sh # Execute 15 minute collections ) : PID ( 516342 ) : Fri Nov 25 ... (2 Replies)
Discussion started by: jhansrod
2 Replies

9. UNIX for Dummies Questions & Answers

CRON problem

I am having a problem running a shell within CRON. It will run successfully if I do not inject a .profile into the entry. However, the second I place a . profile in front of the shell, the job does not execute. Any ideas? (4 Replies)
Discussion started by: VooDooMan
4 Replies

10. UNIX for Dummies Questions & Answers

Cron problem

Hi, I want to run my shrip for every 30 min.. if i enter crontab -l i am getting following.. 00,10,20,30,40,50 * * * * /home/arbuser/temp2/perform/per.sh 00,15,40,35,50 * * * * sh home/arbuser/temp2/perform/per.sh if I enter like this : ps -ef |grep cron root 311454 1 0... (3 Replies)
Discussion started by: redlotus72
3 Replies
Login or Register to Ask a Question