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?

2 Answers 2


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? Apr 25, 2011 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! Apr 25, 2011 at 20:26

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .