マシン間でのファイルの転送は、開発者として常に行う非常に一般的な運用タスクです。
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つの転送モードがあります。
- ASCIIは、情報交換のための米国標準コードの略です 。 テキストファイルなどのプレーンファイルを転送するために使用されます。
- バイナリモード :バイナリモードは、画像などの非テキストファイルを転送するために使用されます。
デフォルトの転送モードはASCIIです。
以下の例では、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コマンドを実行できます。
ファイルの種類に応じて、モード(バイナリまたはASCII)を選択できます。
ftp> ascii
200 Type set to A.
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)
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でつながりましょう。