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
です。FROMとTO、両方にローカル=自分側と遠隔=向こう側を与えることが出来る。ところで、その設定で、簡単に転送=同期の方向を変えることが出来る。rsyncは同期ソフトなので、効率的に、差分だけを同期するように頑張るので、比較的に早く動く。
で、ローカルと向こうの書き方に対して説明する。
- ローカル=こっち側の場合、普通のパスとなる。私の場合、Desktop/localのフォルダを作って、ルートから一歩で行けるようにリンク化しているので、単に/local/todayなどで本日の作業まで飛べる。リンク化、特にln -s PATH NAMEのコマンドについて自分なりに調べてみてください。
- リモート=向こう側の場合、USERNAME@IP:PATHの形式になる。その3つの部分それぞれに対して、独自の環境によるので、自分なりにしらべてください。普通に、サーバを管理している人に知らされるはずです。
例えば、user=takashi, IP=192.168.11.1、作業フォルダ=workにしたときに、ローカル→リモートの同期をこのコマンドで実行する:
rsync -avz -e ssh /local/work/* takashi@192.168.11.1:~/work/.
その中で、*がすべてのファイル、~がホーム、.が「ここに」を指している。同期の方向を逆転するのに、FROMとTOの逆転だけで済む。
以上です。