Linux 作为cronjob从bash脚本启动bash脚本

Linux 作为cronjob从bash脚本启动bash脚本,linux,bash,cron,crontab,Linux,Bash,Cron,Crontab,我正试图从第二个bash脚本启动一个bash脚本(test.sh),该脚本在Ubuntu 14.04上作为cronjob(startTest.sh)运行。 Cron正在运行,如果从命令行调用,这两个脚本都能正常工作 startTest.sh如下所示: #!bin/bash SHELL=/bin/bash PATH=/usr/local/bin:/usr/local/sbin:/sbin:/usr/sbin:/bin:/usr/bin:/home/username/path/to/script

我正试图从第二个bash脚本启动一个bash脚本(test.sh),该脚本在Ubuntu 14.04上作为cronjob(startTest.sh)运行。 Cron正在运行,如果从命令行调用,这两个脚本都能正常工作

startTest.sh如下所示:

#!bin/bash
SHELL=/bin/bash
PATH=/usr/local/bin:/usr/local/sbin:/sbin:/usr/sbin:/bin:/usr/bin:/home/username/path/to/script

bash /home/username/path/to/script/test.sh
#!/bin/bash

touch it_works.txt
test.sh如下所示:

#!bin/bash
SHELL=/bin/bash
PATH=/usr/local/bin:/usr/local/sbin:/sbin:/usr/sbin:/bin:/usr/bin:/home/username/path/to/script

bash /home/username/path/to/script/test.sh
#!/bin/bash

touch it_works.txt
我的crontab条目如下所示

* * * * * /usr/local/bin/startTest.sh

最佳实践通常是在作为cron作业运行的脚本中不使用相对路径(除非执行显式
cd


crond
可能不是从您期望的任何目录运行的。根据此cron作业运行的用户,脚本没有在
crond
的当前工作目录中创建
it_works.txt
的权限,或者它正在创建文件,而您在错误的位置查找。

感谢您提供的信息。如果你也添加一个问题描述就好了。这种方法有什么问题?最有可能的情况是,您正在
/
中创建文件。此外,op有可能忘记对脚本执行
chmod+x
。@sjsam op说它在手动运行时可以工作,所以文件权限可能不是问题。注意:-)我忽略了那部分。