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/bin
cronのPATHにあります。何を提供しますか?
ベストアンサー1
クローンの操作を参照しないでください。
あなたは
*/1 * * * * "whoami && which whoami"
文字通りと呼ばれる命令ですwhoami && which whoami
。たとえば/usr/bin/whoami && which whoami
。明らかに、このコマンドは存在しません。コマンドが正しく解釈されるように引用符を削除します。
*/1 * * * * whoami && which whoami