「FFFTP」とは、世界的に普及している有名なFTPソフトの一つで、
Windowsでファイルやデータを転送する際によく用いられています。
今回、業務上でFFFTPを用いた作業において、
ちょっとした問題が発生したので、備忘として記事を残しておきます。
1.発生事象
シェルスクリプト改修のため、FFFTP経由でLinuxサーバ上からシェルをローカル(Windows)に転送。
その後、改修後シェルをFFFTP経由でサーバに転送した後、シェルを実行した際にエラーが発生。
syntax error: unexpected end of file(expecting "fi")
2.原因
シェル改修時にファイルを転送する際、FFFTPの転送モードが“自動転送”モードになっていたため、自動的に改行コードが「CRLF」になっていた。
Linux環境は改行コードが「LF」でないと正常に実行できないため、エラーが発生していた。
(上記のエラーだと、改行後の「fi」(if文の最後)が処理できていない)
3.対応・対策
シェルの改行コードを「LF」に修正後、転送モードを“バイナリ”モードに変更後、再転送。
転送後、シェルを実行すると正常実行できた。
<対策>
①FFFTPのオプションからデフォルトの転送モードを設定できるので、転送モードをバイナリモードに設定しておく。
②ファイルの転送前に転送モードの確認をする。
(今回の事象は②の確認が漏れていたため発生した)