cronはPATHでいくつかのコマンドを探しますが、他のコマンドは見つけません。

cronはPATHでいくつかのコマンドを探しますが、他のコマンドは見つけません。

PATHとSHELLが正しく設定されているにもかかわらず、crontabで特定のコマンドを実行するのに問題があります。

これは機械の環境です:

SHELL=/bin/bash
USER=ubuntu
MAIL=/var/mail/ubuntu
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/gopath/bin

cron環境は次のとおりです(同じように見えます)。

SHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/gopath/bin
PWD=/home/ubuntu

それからcrontabで:

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/gopath/bin
SHELL=/bin/bash
*/1 * * * * "whoami"
*/1 * * * * "whoami && which whoami"

最初のwhoamiタスクは成功しますが、2番目のタスクは次のように失敗します。

/bin/bash: whoami && which whoami: command not found

which見つからなかったからです。しかし、これは奇妙です。

$ which whoami
/usr/bin/whoami

$ which which
/usr/bin/which

/usr/bincronのPATHにあります。何を提供しますか?

ベストアンサー1

クローンの操作を参照しないでください。

あなたは

*/1 * * * * "whoami && which whoami"

文字通りと呼ばれる命令ですwhoami && which whoami。たとえば/usr/bin/whoami && which whoami。明らかに、このコマンドは存在しません。コマンドが正しく解釈されるように引用符を削除します。

*/1 * * * * whoami && which whoami

おすすめ記事