Executando um JAR a partir de um script bash em um cronjob

1

Por algum motivo, meu cronjob não está funcionando:

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

E meu script bash é assim:

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

Portanto, o arquivo jar aceita dois parâmetros, o primeiro que eu quero sempre ser o mesmo, o segundo vem do primeiro parâmetro bash. Dentro de / var / spool / mail / ubuntu eu vejo este erro:

Não é possível acessar o jarfile myJar.jar

Eu configurei o crontab sob o usuário: ubuntu

proprietário e grupo do arquivo jar é o ubuntu e possui permissões octal de 700.

O que estou fazendo de errado?

    
por Doug Molineux 25.04.2011 / 22:14

2 respostas

4

Tente com caminhos completos:

#! /bin/bash
mysqldump -h anotherhost -P 3306 -u usen -pmypass --all-databases > /path/$1.sql
java -jar /path/myJar.jar param1 /path/$1.sql
    
por 25.04.2011 / 22:19
3

Você deve usar caminhos absolutos! Eu acho que nem o arquivo jar nem o arquivo sql podem ser encontrados ...

#! /bin/bash
SQLFILE=/path/to/file/$1.sql
mysqldump -h anotherhost -P 3306 -u usen -pmypass --all-databases > $SQLFILE
java -jar /path/to/myJar.jar param1 $SQLFILE
    
por 25.04.2011 / 22:22

Tags