ジョブを実行しても、エラーメッセージに 「/var/spool/nqsII/jsv/jobfile/****/user_script: コマンドが見つかりません.」 と出力され実行されない。
このエラーの原因は基本的に以下の2つのどちらかとなります。
-
1.先頭行の "#!" で指定されているコマンド名(通常はシェル名)の絶対パスが誤っている可能性があります。
パスが正しいか、入力ミスが無いかをご確認ください。
2.ジョブスクリプトファイルの改行コードが CRLF (Windows)になっている可能性があります。
スクリプトファイルは、文字コードを "UTF-8"、改行コードを "LF" で作成してください。
改行コードがCRLFのファイルはエディタ(vi,emacsなど)で開いた際、画面下に[DOS]と表記されます。
アップロードする前の対処方法としては下記の通りです。
-
・文字コードや改行コードを指定できるテキストエディタを利用する。
(秀丸エディタ[シェアウェア] や サクラエディタ 等いろいろあります)
※ 文字コードは "UTF-8"、改行コードは "LF" を指定
・WinSCP でファイルをアップロードする時に転送モードを"テキスト" に設定するか、
ファイルの拡張子をテキストだと自動判別されるもの(.txt , .sh 等)にする。
※ この方法では文字コードには対応できません
またアップロード後であっても、フロントエンドノード上で以下のコマンドを実行することで、
改行コードがCRLFからLFに変換されたsample2.shが生成されます。
sed 's/\r//g' sample.sh > sample2.sh