質問: シェル スクリプト内から ftp を実行したいと考えています。また、シェル スクリプト自体の内部で FTP ファイルのダウンロードに必要なユーザー名とパスワードを提供したいと思います。シェル スクリプトからこのバス ftp を実行する方法を説明してもらえますか?
答え: バッチ モードで ftp を使用してファイルをダウンロード/アップロードするには、コマンド ラインから HERE ドキュメントを使用して FTP スクリプトを使用するか、以下で説明するようにシェル スクリプトから FTP を呼び出します。
HERE ドキュメントを使用した FTP スクリプト
$ ftp -in URL << SCRIPTEND user USERNAME PASSWORD binary cd PATH mget PATH SCRIPTEND
上記の ftp スクリプトでは:
- ftp :ftp コマンド
- -i :インタラクティブなプロンプトを無効にします
- -n :自動ログインを無効にする
- user USERNAME PASSWORD :指定されたユーザー名とパスワードを使用してログインします
- binary :バイナリ ファイル転送のバイナリ モードを設定します
- cd PATH :リモート マシンのディレクトリを変更
- mget PATH :指定されたファイルを取得します
- SCRIPTEND :このタグは両方とも、HERE ドキュメントの開始と終了を表します。
- HERE ドキュメントは、コマンドへの入力を提供するために使用されます。詳細については、Here ドキュメントを参照してください。
シェル スクリプトを使用した FTP スクリプト
以下は、FTP サーバーから tar ファイルをダウンロードするサンプル シェル スクリプト スクリプトです。
$ cat download.sh ftp -in mirrors.issp.co.th << SCRIPTEND user anonymous [email protected] binary cd cpan/authors/id/P/PM/PMQS/ mget Compress-Raw-Bzip2-2.027.tar.gz SCRIPTEND
このシェル スクリプトを実行して、ftp からファイルをダウンロードします。
$ sh download.sh $ ls download.sh Compress-Raw-Bzip2-2.027.tar.gz
FTP コマンドの詳細については、以前の記事「FTP および SFTP ビギナーズ ガイドと 10 の例」を参照してください