For some reason my cronjob is not working:

4 20 * * * /home/ubuntu/db_backup/myScript.sh 1 > /home/ubuntu/db_backup/cron_log.txt

And my bash script looks like this:

#! /bin/bash
mysqldump -h anotherhost -P 3306 -u usen -pmypass --all-databases > $1.sql
java -jar myJar.jar param1 $1.sql

So the jar file takes in 2 parameters, the first one i want always to be the same, the second one comes from the first bash parameter. Inside /var/spool/mail/ubuntu I see this error:

Unable to access jarfile myJar.jar

I set the crontab up under user: ubuntu

owner and group of the jar file is ubuntu and it has octal permissions of 700.

What am I doing wrong?


Try with full paths:

#! /bin/bash
mysqldump -h anotherhost -P 3306 -u usen -pmypass --all-databases > /path/$1.sql
java -jar /path/myJar.jar param1 /path/$1.sql
  • Thank you for the response, I will try this, do you think I could try full path for the jar file too? – Doug Molineux Apr 25 '11 at 20:21

You should use absolute paths! I think neither the jar-file nor the sql-file can be found...

#! /bin/bash
mysqldump -h anotherhost -P 3306 -u usen -pmypass --all-databases > $SQLFILE
java -jar /path/to/myJar.jar param1 $SQLFILE
  • Yep it works, I'm afraid I'll have to accept hmontoliu's answer since it was a bit quicker +1 tho cheers! – Doug Molineux Apr 25 '11 at 20:26

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.