由于某种原因,我的 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 中,我看到此错误:
无法访问 jar 文件 myJar.jar
我在用户 ubuntu 下设置了 crontab
jar 文件的所有者和组是 ubuntu,并且具有八进制权限 700。
我究竟做错了什么?
答案1
尝试使用完整路径:
#! /bin/bash
mysqldump -h anotherhost -P 3306 -u usen -pmypass --all-databases > /path/$1.sql
java -jar /path/myJar.jar param1 /path/$1.sql
答案2
您应该使用绝对路径!我认为找不到 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