GNU/Linux >> Linux の 問題 >  >> Linux

UNIX シェル スクリプトからファイルを ftp およびダウンロードする方法

質問: シェル スクリプト内から 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 の例」を参照してください


Linux
  1. Linuxシェルスクリプトで数値と文字列を比較する方法

  2. Linuxの基本:Wgetを使用してシェルにファイルをダウンロードする方法

  3. golangを使用してSFTPサーバーからファイルを一覧表示、アップロード、およびダウンロードする方法

  1. シェルからPythonスクリプトを実行する方法

  2. Unix で空のディレクトリとファイルを見つけて削除する方法

  3. wget vs curl:wget と curl を使用してファイルをダウンロードする方法

  1. SSH経由でファイルをダウンロードおよびアップロードする方法

  2. Androidシェルでファイルをコピーして編集するには?

  3. Unixで単一のコマンドまたはスクリプトで複数のファイルの名前を変更する方法は?