知っておくとちょっと便利!ファイルの転送方法あれこれ

今号では、コンピュータ間でファイル転送を行う方法をいくつかご紹介をします!

コンピュータ間でのファイル転送とは

ここでお話する「ファイル転送」は、コンピュータ間でのファイルのアップロード、および
ダウンロードを指します。

今回ご紹介するのは、ファイルのアップロード、ダウンロードどちらにも対応したコマンドです。
また今回ご紹介する方法は、いずれもファイルの転送元、転送先共に SSH 接続を許可する必要があります。

scp コマンド

scp コマンドは、ssh を使用してファイル転送を行ないます。

例1:ローカルにある file1 というファイルを、リモートサーバ (example.com) に転送 (アップロード)
する

$ scp ~/file1 user@example.com:~/scpdir
file1                                         100%    0     0.0KB/s   00:00

例2:リモートサーバ (example.com) にある file2 というファイルを、ローカルに転送 (ダウンロード)
する

$ scp user@example.com:~/scpdir/file2 ~/scpdir
file2                                         100%    0     0.0KB/s   00:00

また、-r オプションを付けるとディレクトリごと転送することができます。

$ scp -r scpdir/scpsubdir user@example.com:~/scpdir
$ scp -r user@example.com:~/scpdir/scpsubdir ~/scpdir

rsync コマンド

rsync コマンドは、2つのサーバ間のファイルやディレクトリを同期します。用途は scp コマンドと
同じくファイルをコピーすることですが、scp と違う点は、コピー先に同じファイルがあった場合、変更がない
ファイルはコピーしません。
この仕様により、ファイルの転送が高速に行われます。

例1:ローカルにある file1 というファイルを、リモートサーバ (example.com) に転送 (アップロード)
する

$ rsync ~/file1 user@example.com:~/scpdir

※scp コマンドのように、ファイルが転送された旨は表示されません。

例2:リモートサーバ (example.com) にある file2 というファイルを、ローカルに転送 (ダウンロード)
する

$ rsync user@example.com:~/scpdir/file2 ~/scpdir

また、scp コマンドと同様に -r オプションを付けるとディレクトリごと転送することができます。

$ rsync -r scpdir/scpsubdir user@example.com:~/scpdir
$ rsync -r user@example.com:~/scpdir/scpsubdir ~/scpdir

sftp コマンド

sftp コマンドは、対話形式でファイル転送を行ないます。
あらかじめ指定したサーバに接続し、そのサーバからファイルをコピーしたりファイル転送を行ないます。

例1:ローカルにある file1 というファイルを、リモートサーバ (example.com) に転送 (アップロード)
する

$ sftp user@example.com
Connected to example.com.
sftp> put scpdir/file1
Uploading file1 to /home/user/scpdir/file1
file1                                         100%    4     8.6KB/s   00:00

例2:リモートサーバ (example.com) にある file2 というファイルを、ローカルに転送 (ダウンロード)
する

sftp> get scpdir/file2
Fetching /home/user/scpdir/file2 to file2
/home/user/scpdir/file2                       100%    4     5.0KB/s   00:00

また、scp / rsync コマンドと同様に -r オプションを付けるとディレクトリごと転送することができます。

sftp> put -r scpdir
Uploading scpdir/ to /home/user/scpdir
Entering scpdir/
scpdir/file2                                  100%    4    10.2KB/s   00:00
scpdir/file                                   100%    4    10.7KB/s   00:00
sftp> get -r scpdir/
Fetching /home/user/scpdir/ to scpdir
Retrieving /root/scpdir
/home/user/scpdir/file                             100%    4     5.9KB/s   00:00
Retrieving /home/user/scpdir/scpsubdir
/home/user/scpdir/scpsubdir/subfile1               100%    4     5.8KB/s   00:00
/home/user/scpdir/scpsubdir/subfile2               100%    4     6.1KB/s   00:00
/home/user/scpdir/file2                            100%    4     5.8KB/s   00:00

その他に、sftp でログイン中に使用できるコマンドとして、以下のものがあります。

  • ls
    リモートサーバ側のファイル一覧を表示する
  • lls
    ローカルサーバ側のファイル一覧を表示する
  • pwd
    リモートサーバ側のカレントディレクトリを表示する
  • lpwd
    ローカルサーバ側のカレントディレクトリを表示する

他にもたくさんありますが、こちらでは紹介しきれないため詳しくは man sftp コマンドを
参照してみてください。

ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

0人がこの投稿は役に立ったと言っています。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です