Windowsの場合、サーバとファイルをやり取りする際はWinSCP(ssh)が有名どころだと思いますが、開発環境サーバにソースファイルをアップするときにいちいち、WinSCPを立ち上げてアップするのは少々めんどくさい感じがします。
他には、sambaサーバを立てたり、sshfsでマウントしてアップする方法も有りますが、個人的には開発環境ではコマンド一つでサーバにアップしたいと思っています。
macには、rsyncコマンドがあります。
WindowsでもcwRsyncを使えば、rsyncコマンドを使う事が出来ます。
目次
- 開発環境に公開鍵認証方式(ssh)の設定をする
- cwRsyncインストール
- cwRsyncコマンド実行
開発環境に公開鍵認証方式(ssh)の設定をする
cwRsyncコマンドでパスワード入力無しでコマンド1つで同期する為、公開鍵認証方式(パスフレーズ無し)の設定をします。
開発環境なので全てrootユーザで実行しています。
[root@localhost ~]# ssh-keygen -t rsa ← 公開鍵、秘密鍵の作成(パスフレーズ無し)
[root@localhost ~]# chmod 700 ~/.ssh ← パーミッション設定
[root@localhost ~]# chmod 600 ~/.ssh/*
[root@localhost ~]# cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys ← 公開鍵をリネームコピー
[root@localhost ~]# vi /etc/ssh/sshd_config ← sshdの設定
RSAAuthentication yes ← コメント解除
PubkeyAuthentication yes ← コメント解除
AuthorizedKeysFile .ssh/authorized_keys ← コメント解除
AllowUsers root ← 追加
[root@localhost ~]# service sshd restart ← sshd再起動
秘密鍵「/root/.ssh/id_rsa」をWindowsにコピーしておく。
インストール
Download | ITeF!x. からcwRsyncをダウンロード、インストールします。
今回はC:\cwRsyncにインストールしました。
コピーしておいた秘密鍵「/root/.ssh/id_rsa」をC:\cwRsync\192.168.1.3に移動します。
cwrsync.cmdにコマンド例の記述があります。
このファイルに以下を記述して、実行すると開発環境にファイルが同期されます。
C:\cwRsync\bin\rsync.exe -rvz -e "C:\cwRsync\bin\ssh.exe -i /cygdrive/c/cwRsync/192.168.1.3/id_rsa" --block-size=81920 --stats --progress /cygdrive/c/home/sample/ root@192.168.1.3:/home/sample/
ただ、実行すると毎回「Are you sure you want to continue connecting (yes/no)?」と聞かれてしまうので~/.ssh/configに
host *
StrictHostKeyChecking no
を追加して聞かれないようにしました。