Linux

命令行执行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
上一篇下一篇

猜你喜欢

热点阅读