質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.09%

本番環境でのWheneverの設定エラー

解決済

回答 1

投稿

  • 評価
  • クリップ 1
  • VIEW 1,124

score 409

前提・実現したいこと

本番環境でcrontabを設定し、定期的に自動でrake commandを動かしたいです。

発生している問題・エラーメッセージ

新しいメールがなん度も届きます。
メールのエラー文のみを記します。

/etc/profile: line 31: id: command not found
/usr/bin/env: bash: No such file or directory
/etc/profile: line 64: id: command not found
/etc/profile: line 64: id: command not found

コマンドが見つからないということですが、パスが間違っているのでしょうか?

該当のソースコード

【メール全文】

From root@tk2-241-30026.vs.sakura.ne.jp  Sat Mar  4 14:35:01 2017
Return-Path: <root@tk2-241-30026.vs.sakura.ne.jp>
X-Original-To: anime
Delivered-To: anime@tk2-241-30026.vs.sakura.ne.jp
Received: by tk2-241-30026.vs.sakura.ne.jp (Postfix, from userid 503)
    id DABD44E029B; Sat,  4 Mar 2017 14:35:01 +0900 (JST)
From: root@tk2-241-30026.vs.sakura.ne.jp (Cron Daemon)
To: anime@tk2-241-30026.vs.sakura.ne.jp
Subject: Cron <anime@tk2-241-30026> /bin/bash -l -c 'cd /home/anime/deploy/releases/20170304051211 && RAILS_ENV=production bundle exec rake scraping:scraping --silent >> log/crontab.log 2>&1'
Content-Type: text/plain; charset=UTF-8
Auto-Submitted: auto-generated
X-Cron-Env: <LANG=ja_JP.UTF-8>
X-Cron-Env: <LC_ALL=en_US.utf-8>
X-Cron-Env: <LC_PAPER=ja_JP.UTF-8>
X-Cron-Env: <LC_ADDRESS=ja_JP.UTF-8>
X-Cron-Env: <LC_MONETARY=ja_JP.UTF-8>
X-Cron-Env: <LC_NUMERIC=ja_JP.UTF-8>
X-Cron-Env: <LC_TELEPHONE=ja_JP.UTF-8>
X-Cron-Env: <LC_MESSAGES=ja_JP.UTF-8>
X-Cron-Env: <LC_IDENTIFICATION=ja_JP.UTF-8>
X-Cron-Env: <LC_COLLATE=ja_JP.UTF-8>
X-Cron-Env: <LC_MEASUREMENT=ja_JP.UTF-8>
X-Cron-Env: <LC_CTYPE=ja_JP.UTF-8>
X-Cron-Env: <LC_TIME=ja_JP.UTF-8>
X-Cron-Env: <LC_NAME=ja_JP.UTF-8>
X-Cron-Env: <PATH=/home/ubuntu/.nvm/versions/node/v4.6.1/bin>
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <HOME=/home/anime>
X-Cron-Env: <LOGNAME=anime>
X-Cron-Env: <USER=anime>
Message-Id: <20170304053501.DABD44E029B@tk2-241-30026.vs.sakura.ne.jp>
Date: Sat,  4 Mar 2017 14:35:01 +0900 (JST)

/etc/profile: line 31: id: command not found
/usr/bin/env: bash: No such file or directory
/etc/profile: line 64: id: command not found
/etc/profile: line 64: id: command not found

【/etc/profile】

            fi
    esac
}


if [ -x /usr/bin/id ]; then
    if [ -z "$EUID" ]; then
        # ksh workaround
        EUID=`id -u`
        UID=`id -ru`
    fi
    USER="`id -un`"
    LOGNAME=$USER
    MAIL="/var/spool/mail/$USER"
fi

# Path manipulation
if [ "$EUID" = "0" ]; then
    pathmunge /sbin
    pathmunge /usr/sbin
    pathmunge /usr/local/sbin
else
    pathmunge /usr/local/sbin after
    pathmunge /usr/sbin after
    pathmunge /sbin after
fi

HOSTNAME=`/bin/hostname 2>/dev/null`
HISTSIZE=1000
if [ "$HISTCONTROL" = "ignorespace" ] ; then
    export HISTCONTROL=ignoreboth
else
    export HISTCONTROL=ignoredups
fi

export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL
export RBENV_ROOT=/usr/local/rbenv
export PATH="$RBENV_ROOT/bin:$PATH"
eval "$(rbenv init -)"

# By default, we want umask to get set. This sets it for login shell
# Current threshold for system reserved uid/gids is 200
# You could check uidgid reservation validity in
# /usr/share/doc/setup-*/uidgid file
if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
    umask 002
else
    umask 022
fi

for i in /etc/profile.d/*.sh ; do
    if [ -r "$i" ]; then
        if [ "${-#*i}" != "$-" ]; then
            . "$i"
        else
            . "$i" >/dev/null 2>&1
        fi
    fi
done

unset i
unset -f pathmunge

【/usr/bin/env】

ELF>?@@_@@ @@@@@?@@@@?O?O PP`P`?@ HQHQ`HQ`?@@DDP?td?D?D@?D@??Q?t/lib64/ld-linux-x86-64.so.2GNUGNU.r??????S??)???C??N1@ 0`12G-??>K????y?c*+Ը??1?z? ?>?|^???????9??@L$???W2?HX???+?!Er'Ri
                                                                                                                                                                                       ?T`?B@/? @??T T??XB`T??X?x?`S`%0R4?S`%R4?S`%?R4T`%??R40?8R4????????8?8R4????????@?8R4`?8R4????????x?8R4????????x?8R4??????????8R4????????8R4????????P?8R4????????`?8R4??????????8R4?????????8R4%`R40?8R4% R4???Q4?R4???Q4??R4???Q2ti4???Q<ui4???QH?R`?R`?R`R4ii
                          ?R`S`S``2S`3 S`'(S`)0S`48S`5@S`0`S`hS`pS`xS`?S`?S?S`    ?S`
?S`
+H???5?C ?%?C @?%?C h??????%?C h??????%?C h??????%?C h?????%?C h?????%?C h?????%?C h?????%?C h?p????%?C ?`????%?C h    ?P????%?C h
?@????%?C h
           ?0????%?C h
?????%rC h?????%jC h??????%bC h??????%ZC h??????%RC h??????%JC h?????%BC h?????%:C h?????%2C h?????%*C h?p????%"C h?`????%C h?P????%C h?@????%
C h0????%C h? ????%?B h?????%?B h?????%?B h??????%?B h ??????%?B h!??????%?B h"??????%?B h#????1?I??^H??H???PTI???9@H???9@H???@?/??????H?H??@ H??t??H?Ð????????????UH??SH??=?B uK?P`H??B H??P`H??H??H9?s$fDH??H?uB ??P`H?gB H9?r??SB H?[??fff.?H?=?= UH??t?H??? P`????Ð?????????????AUATUS??H???t@H?i@ H?5(?1?H?(?;???H??H?A@ ?H??H?81????????????L?%)@ H?5?'1??I?,$??????H??1?H??????H?-    @ H?5?'?1?L?m?????H??L??????L?mH?5?(?1?????L??H???????L?mH?5?(?1?????L??H???????L?mH?5)?1??d???L??H??????I?<$?h
@*H?5*H?ƿ1??????H?mH?5?(?1??????H??H???/???1???3???H??tH?=?)?H???u;I?<$?           H?5Q*1??I???:???H?
                                                                        H?53)H??1??????H??H?ƿ1??J????V???DI?<$?
                                                                                                               H?5?(H??1???Q???H??H?ƿ1??????DH?\$?H?l$؉?L?d$?L?t$?H??L?l$?L?|$?H??XH?>E1?E1??H?5?*??b???H?52?9 H?(E1?H?މ??E??????tX??uu?L?5T< I?>??????t?I?>??L?-?< A?E9???H?H???:?(???@:?(?xH?i< H?Z> H?A?E?H?
H?5?'1??I???:???I???"????0L??

【deploy.rb】

・・・省略・・・
set :whenever_identifier, ->{ "#{fetch(:application)}_#{fetch(:stage)}" }

set :whenever_command, "bundle exec whenever"
set :whenever_roles, :batch # 対象のロールを指定
set :whenever_environment, :production
・・・省略・・・

【suchedule.rb】

env :PATH, ENV['PATH']
require File.expand_path(File.dirname(__FILE__) + "/environment")
set :output, 'log/crontab.log'
set :environment, :production


#2時間ごとに動かす
every 5.minutes do
   rake 'scraping:scraping'
end

互恵

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • ryochin

    2017/03/06 13:12

    OS によりますが、おそらく /usr/bin が環境変数 $PATH に含まれていないのでしょう。which id したらどう表示されますか

    キャンセル

  • s.k

    2017/03/06 13:23

    ありがとうございます!!さくらのVPSで行なってますが、$ which id /usr/bin/idです!

    キャンセル

回答 1

check解決した方法

0

updateをしていないだけでした。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.09%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る