maratishe.github.io
遠隔サーバへファイル転送
Author: maratishe@gmail.com -- created 170222

背景・前提


Windowsの場合、少なくてもPoderosa (このマニュアルのStep5によりゲット)、以下の方法BならCygwin+Poderosa(j上記のマニュアル全体)の入手済の状態を期待している。Macの場合、何もしなくてもよい。

ファイル転送そのものに必要な条件として、SSHでログインできるようなサーバの転送先がある。転送先が存在しないとこのマニュアルに意味がありません。

後、ファイル転送という不思議な用語は、ファイル送信=アップロードファイル受信=ダウンロード、両方を指す。

方法A: GUI的なファイル転送



GUIは、名前の通り、グラフィカルなので、便利で決まっている。Windowsに限っているがWinSCPPortable.zipを使うことになる。ファイル名のportableというのは、インストール不要で、解凍してそのままで実行できるソフトおの意味をしている。なので、右クリック解凍してから実行しましょう。この見た目になる:


普段は、上記の図のように、起動したときにすぐにSSHログインをしようとしている状態になる。そこで、プロトコル=SCPと設定したうえ、ユーザ名パスワードを記入する。

ログインに成功した場合、回のように、左型=ローカル右側=リモートの状態で接続される。



それ以降、マウスで引っ張って=ドラッグアンドドロップでファイルを動かせる。転送方向として、どちらでもできる。

方法B: コマンドラインでファイル転送=ファイル同期



まず、この方法で、WindowsとMac両方の使い方が統一される。ただし、Windowsの場合、Cygwinのインストール(ここで詳しく説明)済の状態が条件となる。Macはそのままです。

Macの場合、普通のターミナルのアプリを実行するだけです。Windowsの場合Poderosaを使う。まず、Macターミナルもそうだし、Poderosaを使ってSSHログインできる:


そこで、〇されたボタンの次→次の3番目のボタンは、Cygwin1=ローカルのターミナルとなる。それを使って、ファイル同期を行うことになる。もちろん、SSHログインしたうえの動作も別途になるだそう(逆に無いとなにを転送するかのも不明)。

それ以降、Mac・Windows両方に同じコマンドが打てる。rsyncのコマンドを中心にして動作をする。そのコア使用は:

rsync -avz -e ssh FROM TO
です。FROMTO、両方にローカル=自分側と遠隔=向こう側を与えることが出来る。ところで、その設定で、簡単に転送=同期の方向を変えることが出来るrsyncは同期ソフトなので、効率的に、差分だけを同期するように頑張るので、比較的に早く動く。

で、ローカル向こうの書き方に対して説明する。



例えば、user=takashi, IP=192.168.11.1作業フォルダ=workにしたときに、ローカル→リモートの同期をこのコマンドで実行する:

rsync -avz -e ssh /local/work/* takashi@192.168.11.1:~/work/.
その中で、*がすべてのファイル、~がホーム、.が「ここに」を指している。同期の方向を逆転するのに、FROMTOの逆転だけで済む。

以上です。