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

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

新規登録して質問してみよう
ただいま回答率
85.48%
bash

bash(Bourne-again-Shell)は sh(Bourne Shell)のインプリメンテーションに様々な機能が追加されたシェルです。LinuxやMac OS XではBashはデフォルトで導入されています。

Embulk

Embulkは、CSVデータやアクセスログなどの構造化データを高い信頼性で転送することができる、プラグインベースのバルクデータローダーです。

Q&A

解決済

1回答

937閲覧

Embulkをcronからshellscriptで実行できない

BT_

総合スコア24

bash

bash(Bourne-again-Shell)は sh(Bourne Shell)のインプリメンテーションに様々な機能が追加されたシェルです。LinuxやMac OS XではBashはデフォルトで導入されています。

Embulk

Embulkは、CSVデータやアクセスログなどの構造化データを高い信頼性で転送することができる、プラグインベースのバルクデータローダーです。

0グッド

0クリップ

投稿2022/04/07 04:11

事象

タイトルの通り、cronで設定されたshellscriptでembulkを呼び出せません。
"コマンドが見つかりません"となります。
PATHの確認なども行ったのですが、原因が分かりません。

Embulk v0.9.23

試したこと

確認のため、下記のようなshを作成しました。

  • test.sh(PATH, HOME, embulkファイル確認, embulk -v実行)
#!/bin/bash CURRENT=$(cd $(dirname $0);pwd) export PATH="$HOME/.embulk/bin:$PATH" echo $PATH >> ${CURRENT}/text.log echo $HOME >> ${CURRENT}/text.log ls -l $HOME/.embulk/bin/embulk >> ${CURRENT}/text.log embulk -v >> ${CURRENT}/text.log
  • cron設定
* * * * * /home/ec2-user/bin/test.sh
  • 実行結果(text.log)
/home/ec2-user/.embulk/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin /home/ec2-user -rwxrwxr-x. 1 ec2-user ec2-user 44506338 Apr 20 2021 /home/ec2-user/.embulk/bin/embulk

上記のようにembulk -vの部分はログに出力されず、
"コマンドが見つかりません"となっていしまいます。

terminalからの実行は行なえます。
PATH以外に原因などあるでしょうか。実行権限も全てのユーザで実行出来るはずです。

OS: centos

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

takasima20

2022/04/07 04:27

embulk の実体内で使ってるコマンドがみつからないのでは?
otn

2022/04/08 01:35 編集

エラーメッセージをコピペで書きましょう。
BT_

2022/04/08 01:38

> embulk の実体内で使ってるコマンドがみつからないのでは? javaでしょうか?
BT_

2022/04/08 01:39

>エラーメッセージを書きましょう。 事象に記載しているとおりです。 "コマンドが見つかりません"となっている以外特に出力はありません。
otn

2022/04/08 03:40 編集

"コマンドが見つかりません"というメッセージが出ているのであれば、それはOSやシェルが出しているメッセージじゃなくて、embulk コマンドが出しているメッセージですので、embulk の仕様を調べるのでしょうね。必要な設定など。何らかの環境変数が必要なのでは?
BT_

2022/04/08 03:34

日本語設定なのでコマンドが見つかりませんと出るのですが、 bash: command not foundと同じだと思っています。
otn

2022/04/08 03:42

bashがメッセージを出す場合は、先頭に bash: と出ますので違います。
guest

回答1

0

自己解決

下記部分を別ファイルとし、sourceコマンドをtest.sh内に追加することで解消しました。

bash

1export PATH="$HOME/.embulk/bin:$PATH" 2

投稿2022/04/08 04:20

BT_

総合スコア24

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問