我的crontab如下:
SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/ 01 04 * * * root /home/sphinx_scripts/daily_update_index.sh
daily_update_index.sh如下:
indexer --rotate xxx
现在,如果我从任何地方(以root身份)运行/home/sphinx_scripts/daily_update_index.sh,它都可以正常工作。但我每天都会收到来自cron job的电子邮件,说“找不到命令索引器”。索引器的完整路径是/ usr / loca / bin / indexer。为什么我会收到这样的错误?
答案 0 :(得分:6)
问题在于索引器不在路径上。你说它是/ usr / loca / bin / indexer amd PATH=/sbin:/bin:/usr/sbin:/usr/bin
要解决这个问题,我会将整个路径放在daily_update_index.sh中的索引器中,或者将/ usr / local / bin添加到daily_update_index.sh中的路径
答案 1 :(得分:0)
我正在使用AWS EC2实例,对我来说,问题是我使用pscp从Windows 10计算机上传输了.sh文件,并且文件的行尾不兼容。因此,我使用了sudo apt-get install dos2unix
,然后使用了dos2unix将文件转换为正确的格式。