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

SCPとFTPを使用してLinuxのサーバー間でファイルを転送する方法

マシン間でのファイルの転送は、開発者として常に行う非常に一般的な運用タスクです。

Linuxには、ファイルを転送するためのユーティリティが多数用意されています。このチュートリアルでは、FTPについて説明します。 およびSCP 。多くの自動スクリプトは、ファイルを移動するためにFTPまたはSCPも展開します。

FTPとは何ですか?

FTPは、ネットワークを介してファイルを交換するために使用されるネットワークプロトコルです。ポート21を使用します。FTPを使用すると、ftpを使用してファイルを交換するためのリモートシステムにアクセスできます。 コマンド。

FTP構文

FTP構文は次のとおりです。

ftp host

ここでは、host リモートホストのホスト名またはIPアドレスのいずれかになります。

FTPコマンド

FTPコマンドはLinuxコマンドに似ています。これらのいくつかについて説明します。

コマンド 使用法
オープン 別のコンピューターとのリモート接続を開きます。
get リモートシステムからローカルシステムにファイルをコピーします。
置く ローカルシステムからリモートシステムのディレクトリにファイルをコピーします。
mget 複数のファイルをリモートシステムからローカルシステムの現在のディレクトリに転送します。
mput ローカルシステムからリモートシステムのディレクトリに複数のファイルを転送します。
さようなら/やめる FTP環境を終了する準備をします。
閉じる FTP接続を終了します。
ascii ASCIIへのファイル転送モードを有効にします
バイナリ ファイル転送モードをバイナリに有効にします。

FTP経由でファイルを転送する方法

FTPには、ASCIIとバイナリの2つの転送モードがあります。

  1. ASCIIは、情報交換のための米国標準コードの略です 。 テキストファイルなどのプレーンファイルを転送するために使用されます。
  2. バイナリモード :バイナリモードは、画像などの非テキストファイルを転送するために使用されます。

デフォルトの転送モードはASCIIです。

ステップ1-FTPに接続

以下の例では、hostA リモートホストです。ユーザー名とパスワードの入力を求められます。

$ ftp hostA
Connected to hostA.
220 hostA FTP server ready.
Name (hostA:user): user
331 Password required for user.
Password: password
230 User user logged in.
Remote system type is LINUX.

接続が成功すると、ftp>に気付くでしょう。 冒頭の記号。これで、FTPコマンドを実行できます。

ステップ2–ファイル転送モードを選択します

ファイルの種類に応じて、モード(バイナリまたはASCII)を選択できます。

ftp> ascii
200 Type set to A.
ステップ3–ファイルを転送する

getを使用します ファイルsample.txtを転送するコマンド リモートFTPサーバーからローカルマシンへ。

ftp> get sample.txt
200 PORT command successful.
150 Opening ASCII mode data connection for sample.txt (22 bytes).
226 Transfer complete.
local: sample.txt remote: sample.txt
22 bytes received in 0.012 seconds (1.54 Kbytes/s)
ステップ4.セッションを終了します
ftp> bye
221-You have transferred 22 bytes in 1 files.
221-Total traffic for this session was 126 bytes in 2 transfers. 221-Thank you for using the FTP service on hostA.
221 Goodbye.

FTP経由で複数のファイルを転送する方法

ファイルをまとめて転送するには、次の2つのコマンドがあります。mget およびmput

mgetを使用します mputを使用しているのに対し、ファイルをダウンロードするには ファイルをアップロードします。

ftp> mget sample_file.1 sample_file.2
ftp> mput sample_file.1 sample_file.2

学習したすべてのステップは、実行可能ファイルに入れてスケジュールすることができます。自動化のコードはここにあります。

SCPとは何ですか?

SCPはSecureCopyの略です。 SSHとポート22を使用します。SCPを介して転送されるデータは暗号化されており、スニファはそれにアクセスできません。これにより、SCPは非常に安全になります。

SCPを使用して次のことができます:

  • ローカルマシンからリモートホストにファイルを転送します。
  • リモートホストからローカルマシンにファイルを転送します。

SCP構文

SCPの構文を調べてみましょう。

scp [FLAG] [user@]SOURCE_HOST:]/path/to/file1 [user@]DESTINATION_HOST:]/path/to/file2
  • [FLAG] SCPに与えることができるオプションを指定します。フラグの詳細は次のとおりです。
フラグ 説明
-r ディレクトリを再帰的にコピーします。
-q 進行状況メーターやエラー以外の情報を非表示にするために使用されます。
-C データを宛先に送信するときにデータを圧縮するために使用されます。
-P 宛先SSHポートを指定します。
-p ファイルアクセス時間を保持します。
  • [user@]SOURCE_HOST ソースマシンです。
  • [user@]DESTINATION_HOST:] 宛先マシンです。

SCPを介してファイルを転送するには、資格情報がわかっている必要があり、ユーザーには書き込み権限が必要です

SCPを介してローカルマシンからリモートホストにファイルを転送する方法

ファイルをリモートホストに転送するには、次のコマンドを使用します。

scp source_file.txt [email protected]:/path/to/remote/directory

上記のコマンドで、source_file.txt コピーするファイルです。 Remote_username リモートホスト10.13.13.11のユーザー名です 。 : 宛先パスが指定されています。

サンプル出力:

[email protected]'s password:
source_file.txt                             100%    0     0.0KB/s   00:00

ファイルsource_file.txt これで、/path/to/remote/directoryに配置されます。 。

ディレクトリをコピーするには、-rを使用します 以下に示すようにフラグを立てます。

scp -r /local/directory [email protected]:/path/to/remote/directory

SCPを介してリモートホストからローカルマシンにファイルを転送する方法

リモートホストからローカルマシンにファイルを転送するには、次のコマンドを使用します。

scp [email protected]:/remote/source_file.txt /path/to/local/directory
SCPが上書きするのでファイルを転送するときは特に注意してください 既存のファイル。
まとめ

このチュートリアルでは、コマンドラインからFTPとSCPを使用してファイルとディレクトリを転送する方法を学びました。

自動化された場合、これらのコマンドは、データウェアハウジング、ETL(抽出、変換、読み込み)、レポート、アーカイブ、および一括ファイル処理でさらに大きな目的を果たします。これらのコマンドを試してみてください。 Twitterでつながりましょう。


Linux
  1. ncおよびpvコマンドを使用して2台のコンピューター間でファイルを転送する方法

  2. LinuxとWindows間でSAMBAサーバーを構成してファイルを転送する方法

  3. SCPを使用してファイルを安全に転送する方法

  1. Crocを使用してコンピュータ間でファイルとフォルダを安全に転送する

  2. Linux で FTP を使用してファイルを転送する方法

  3. Linux と Android の間で高速かつ信頼性の高い方法でファイルを転送する方法は?

  1. SCPとSFTPを使用してLinuxホスト間でファイルを安全にコピーする方法

  2. SCP と Rsync を使用して Linux でファイルを転送する方法

  3. Linux で SCP コマンドを使用してファイルを安全に転送する方法