找不到从 cronjob 命令运行的 bash 脚本
Posted
技术标签:
【中文标题】找不到从 cronjob 命令运行的 bash 脚本【英文标题】:bash script running from cronjob command not found 【发布时间】:2012-04-12 08:40:55 【问题描述】:我的crontab如下:
SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root 主页=/ 01 04 * * * 根 /home/sphinx_scripts/daily_update_index.shdaily_update_index.sh 如下:
索引器--旋转 xxx现在,如果我从任何地方(以 root 身份)运行 /home/sphinx_scripts/daily_update_index.sh,它工作正常。但是我每天都会收到来自 cron 工作的电子邮件,说“找不到命令索引器”。索引器的完整路径是 /usr/loca/bin/indexer。为什么会出现这样的错误?
【问题讨论】:
【参考方案1】:问题是索引器不在路径上。你说它是 /usr/local/bin/indexer 并且你有 PATH=/sbin:/bin:/usr/sbin:/usr/bin
为了解决这个问题,我会将索引器的整个路径放在 daily_update_index.sh 中,或者将 /usr/local/bin
添加到 daily_update_index.sh 中的路径
【讨论】:
【参考方案2】:我正在使用 AWS EC2 实例,对我来说,问题是我使用 pscp 从我的 Windows 10 机器传输我的 .sh 文件,并且文件的行结尾不兼容。于是我用sudo apt-get install dos2unix
,然后用dos2unix把文件转换成正确的格式。
【讨论】:
以上是关于找不到从 cronjob 命令运行的 bash 脚本的主要内容,如果未能解决你的问题,请参考以下文章
无法从 WSL bash 中的批处理文件运行 Homebrew 应用程序(找不到命令)