我无法从 crontab 成功执行脚本。当脚本手动执行时,它工作正常。添加到 crontab 时,它会出错。
当脚本按如下方式手动执行时,一切正常:
cd /home/admin/git/Repo
./lunchpad2.sh
脚本添加到 crontab 如下:
sudo crontab -e
30 13 * * * /home/admin/git/Repo/lunchpad2.sh > /home/admin/git/Repo/outcome.err
Lunchpad2.sh 设置了 744 个权限;
脚本本身:
#!/bin/bash -p
PATH=$PATH:/home/admin/git/Repo
echo "--> Starting!"
echo "--> Stopping docker"
docker-compose down
echo "--> Switching files"
mv dc_conf_standby.py dc_conf_aboutready.py
mv dc_conf.py dc_conf_standby.py
mv dc_conf_aboutready.py dc_conf.py
echo "--> Building docker"
docker-compose up -d --build
echo "--> Completed!"
产生的错误:
/home/admin/git/Repo/lunchpad2.sh: line 7: docker-compose: command not found
mv: cannot stat ‘dc_conf_standby.py’: No such file or directory
mv: cannot stat ‘dc_conf.py’: No such file or directory
mv: cannot stat ‘dc_conf_aboutready.py’: No such file or directory
/home/admin/git/Repo/lunchpad2.sh: line 15: docker-compose: command not found
我在这里看到两个问题:
您需要在脚本或 cron 作业中使用 cd。Cron 在您的主目录中运行该命令。您可以回显“$PWD”进行确认。
需要指定docker-compose的可执行路径(运行“which docker-compose”确认)
#!/bin/bash -p
cd /home/admin/git/Repo
echo "--> Starting!"
echo "--> Stopping docker"
/usr/bin/docker-compose down
echo "--> Switching files"
mv dc_conf_standby.py dc_conf_aboutready.py
mv dc_conf.py dc_conf_standby.py
mv dc_conf_aboutready.py dc_conf.py
echo "--> Building docker"
/usr/bin/docker-compose up -d --build
echo "--> Completed!"
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句