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

◆ Live配信スケジュール ◆
サイオステクノロジーでは、Microsoft MVPの武井による「わかりみの深いシリーズ」など、定期的なLive配信を行っています。
⇒ 詳細スケジュールはこちらから
⇒ 見逃してしまった方はYoutubeチャンネルをご覧ください
VSCode Dev Containersで楽々開発環境構築祭り〜Python/Reactなどなど〜
Visual Studio Codeの拡張機能であるDev Containersを使ってReactとかPythonとかSpring Bootとかの開発環境をラクチンで構築する方法を紹介するイベントです。
https://tech-lab.connpass.com/event/311864/

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

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

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

今回ご紹介するのは、ファイルのアップロード、ダウンロードどちらにも対応したコマンドです。
また今回ご紹介する方法は、いずれもファイルの転送元、転送先共に 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 コマンドを
参照してみてください。

アバター画像
About 貝野 友香 67 Articles
OSSよろず相談室でサポートをやっています。時々ライブ配信や勉強会に出ていることもあります。
ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

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

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


ご覧いただきありがとうございます。
ブログの最新情報はSNSでも発信しております。
ぜひTwitterのフォロー&Facebookページにいいねをお願い致します!



>> 雑誌等の執筆依頼を受付しております。
   ご希望の方はお気軽にお問い合わせください!

Be the first to comment

Leave a Reply

Your email address will not be published.


*


質問はこちら 閉じる