命令行执行shell脚本成功,但crontab执行失败
2020-06-24 本文已影响0人
思念_似水流年
手动执行 Shell 脚本成功,但是放入 crontab 执行就会报错:
crontab任务调度时找不到npm命令
但直接执行该 Shell 脚本却可以成功,可能由两个原因导致:
解决方法:
1、路径问题
查看 crontab 中执行该脚本的路径是否正确,例如:
53 15 * * * /bin/sh /home/testln/cypress_sit.sh >> /home/testln/log/cypress_sit.log 2>&1
2、环境变量问题导致
是因为 crontab 的 环境的问题,在 crontab 自动执行时,它不会加载 PATH 全部路径,我们必须在脚本里面声明出来。所以添加如下代码在 Shell 脚本中。
解决方法:
1、方法1:
在 Shell 脚本前面加上如下代码,注意:.与/之间的空格
. /etc/profile
2、方法2:
在 Shell 脚本前面加上刷新代码
source /etc/profile
如这里按照方法1添加配置文件后即可执行成功
#!/bin/bash
. /etc/profile
echo $(date)
cd /home/testln/cypress/idt-feijoa-test-quality_testing && git pull origin master && npm run cysit