I.はじめに
以前はテスト サーバーにケトルがあるのは正常でしたが、サーバーを変更してケトルを移行した後、問題が発見されました。
1. 次のコマンドを手動で実行してケトルを実行します。
LOG_DATE=`date +%Y%m%d`
LOG_PATH=/home/admin/kettle/logs/mykettle_${LOG_DATE}.log
KJB_PATH=/home/admin/kettle/kjb
/home/admin/kettle/data-integration/kitchen.sh -file=${KJB_PATH}/mykettle_.kjb >>${LOG_PATH} 2>&1
2. ただし、crontab
やかんを使うと
*/1 * * * * /home/admin/kettle/shell/mykettle.sh >> /home/admin/kettle/logs/cron.log 2>&1
エラーが報告されます。
/home/admin/kettle/data-integration/spoon.sh: line 118: ldconfig: command not found
#######################################################################
WARNING: no libwebkitgtk-1.0 detected, some features will be unavailable
Consider installing the package with apt-get or yum.
e.g. 'sudo apt-get install libwebkitgtk-1.0-0'
#######################################################################
/home/admin/kettle/data-integration/spoon.sh: line 227: java: command not found
2. 調査のプロセス
1. Baidu を検索したno libwebkitgtk-1.0 detected, some features will be unavailable
ところ、関連するやかんのチュートリアルが多数あることがわかりました。つまり、webkitgtk-2.4.9-1.el7.x86_64.rpm
パッケージをインストールする必要があります。
パッケージは次の Web サイトからダウンロードできます。
http://www.rpmfind.net/linux/rpm2html/search.php?query=libicui18n&submit=Search+...&system=&arch=
2. ただし、インストール後もcrontab
ケトルを使用するとエラーが報告されます。
/home/admin/kettle/data-integration/spoon.sh: line 118: ldconfig: command not found
#######################################################################
WARNING: no libwebkitgtk-1.0 detected, some features will be unavailable
Consider installing the package with apt-get or yum.
e.g. 'sudo apt-get install libwebkitgtk-1.0-0'
#######################################################################
/home/admin/kettle/data-integration/spoon.sh: line 227: java: command not found
3. 解決策
1. インターネットでいろいろ検索しましたが、解決策が見つかりませんでした。
2. 分析の結果、spoon.sh: line 118: ldconfig: command not found
crontab がldconfig の実行に失敗したことが問題であることがわかりました。(kettle の手動実行は成功するので、libwebkitgtk-1.0 パッケージがないことは問題ではないはずです)
3. crontab: でコマンド test を設定する*/1 * * * * ldconfig -p >> /home/admin/abc.log 2>&1
と、エラー メッセージも出力されることがわかります。
/bin/sh: ldconfig: command not found
この時点で、 libwebkitgtk-1.0 パッケージがないのではなく、エラー レポートのcrontab
実行の問題であると判断されますldconfig
(フォローアップでは、 java コマンドの実行でエラーがレポートされることも示されています)。spoon.sh: line 227: java: command not found
4. サーバーの担当者に問題をフィードバックすると、いくつかの環境変数が変更されました(sbin などを追加したとのことですが、何が変更されたのか理解していませんでした)。
5. 次に、次のコードをspoon.shの先頭に追加します(環境変数を更新するため)。
#!/bin/sh
. /etc/profile
. ~/.bash_profile
再テストにより、crontab が kettle を正常に実行したことがわかりました。
4. 備考
1. 今回の問題は、libwebkitgtk-1.0 パッケージがないことではなく、ldconfig および java コマンドの実行時に crontab がエラーを報告するという問題です。
2. 環境変数を更新するコマンドをspoon.shの先頭に追加して、問題が解決できるかどうかを確認できます。
3. そうでない場合は、環境変数の設定が正しいかどうかによって異なります(どの環境変数をチェックする必要があるかが明確ではありません。検索可能である必要があり、crontab执行ldconfig报错
パス sbin と関係がありますか?)