По какой-то причине мой cronjob не работает:
4 20 * * * /home/ubuntu/db_backup/myScript.sh 1 > /home/ubuntu/db_backup/cron_log.txt
И мой сценарий bash выглядит так:
#! /bin/bash
mysqldump -h anotherhost -P 3306 -u usen -pmypass --all-databases > $1.sql
java -jar myJar.jar param1 $1.sql
Таким образом, файл jar принимает 2 параметра: первый, который я хочу всегда быть одинаковым, второй - из первого параметра bash. Внутри / var / spool / mail / ubuntu я вижу эту ошибку:
Невозможно получить доступ к jarfile myJar.jar
Я установил crontab под пользователем: ubuntu
Владелец и группа файла jar - ubuntu и имеет восьмеричные права доступа 700.
Что я делаю не так?
Попробуйте использовать полные пути:
#! /bin/bash
mysqldump -h anotherhost -P 3306 -u usen -pmypass --all-databases > /path/$1.sql
java -jar /path/myJar.jar param1 /path/$1.sql
Вы должны использовать абсолютные пути! Думаю, ни jar-файл, ни sql-файл не найти ...
#! /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