Cron和Bash脚本:无法执行

时间:2019-02-26 17:44:44

标签: bash shell cron

我制作了一个执行docker命令以转储MySQL数据库的bash脚本:

dump_db.sh

#!/bin/bash

time=$( date +%Y%m%d%H%M )

currdir=$( pwd )

cat $currdir/container_list | while read container; do
        echo "" | docker exec -i $container mysqldump -u <user> -p<password> <dbname> > $currdir/$container-$time.sql
done

如果我尝试手动运行脚本,则一切正常,但是如果我使用cron,则脚本不会执行。

我的crontab是:

PATH=<same environment>

26 17 * * * /bin/sh /path/to/script/dump_db.sh

如您所见,我也尝试导出PATH(并通过crontab中的env命令对其进行了检查),但是什么也没有。 我也尝试过这些线

26 17 * * * /bin/bash /path/to/script/dump_db.sh
26 17 * * * /path/to/script/dump_db.sh

此外,也是一个简单的bash脚本,如下所示:

#!/bin/bash

touch test_touch.txt

不起作用,而通过touch的简单cron命令是可以的。

我在哪里错了?

1 个答案:

答案 0 :(得分:0)

请检查脚本是否具有其他用户的执行权限。 手动运行时,将与您登录的用户一起运行。 但是,当它从Cron运行时,它是另一个用户。该用户必须具有执行该脚本的权限。

You may check this post for more help