#はじめに
Linuxでパス同士を同期をするためによくRsyncを使ったりすると思いますが、これをWindowsで使いたいなと思ったのでしらべてみた覚書です
#同期手段について
Windowsにてパスを同期する方法として有名なのは、いろいろあります。
- xcopy
標準のコマンドなので、これを使っている人も多いかと。
xcopy e:\from f:\to\ /D /S /E /H /C /Y /R
※UNCパス(\192.168.0.100\public みたいな)も指定できるので、NAS/ファイルサーバ/リモートPCとの同期も可能
- robocopy
同じくWindows標準コマンドで、こちらは255文字以上のファイル名に対応しているで、日本語ファイル名などがある場合はこちら
robocopy e:\from\ f:\to\ /S /E /XO /NP /NDL /R:0 /XO /XD "e:\$RECYCLE.BIN" "e:\from\hogehoge" /LOG:c:\copy.log
※同じくUNCパス(\192.168.0.100\public みたいな)も指定できるので、NAS/ファイルサーバ/リモートPCとの同期も可能
- Bunbackup
個人から商用にいたるまで、知名度はかなり高いフリーウェアの1つかと思います。
http://nagatsuki.la.coocan.jp/bunbackup/
正直なところ、こだわりがなければこれでも問題ないのですが…UNCパスも指定できますし。
- cwRsync
cwRsync は Windows で Rsync を動作させるための Cygwin 環境をパッケージしたソフトウェア。
ssh などのプログラムも含まれているので、cwRsync パッケージをインストールするだけで rsync をひと通り使うことができる。
cwRsyncの利点はLinux や Mac の rsync コマンドと同じ書式で使うことができること。くらい。
製作元はこちらですが、現在Freeware版のリンクが切れている
https://www.itefix.net/home
入手方法
Cocolareyを使ってインストールする。
https://chocolatey.org/packages/rsync/5.5.0.20180618
choco install rsync
大まかな使い方は、Rsyncと同じ、cygwinがベースなのでドライブレターが/cygdrive/ドライブ/になるところに注意をするくらい
インストール先はchocoを使った場合任意の設定になるので環境変数CWRSYNCHOMEはそれに合わせる。
@ECHO OFF
SETLOCAL
SET CWRSYNCHOME=C:¥cwRsync
SET HOME=%HOMEDRIVE%%HOMEPATH%
SET PATH=%CWRSYNCHOME%¥bin;%PATH%
rsync -av -e ssh foo@192.168.1.2:/home/vagrant/source /cygdrive/c/Users/vagrant/dest
rsync -rv --delete ^
--exclude "./svn/*" ^
--log-file "/cygdrive/c/Users/vagrant/rsync.log" ^
rsync://192.168.1.2/home/www ^
/cygdrive/c/inetpub/wwwroot
pause
#さいごに
正直、標準コマンドならrobocopyを使えばいいですし、WSL環境ならUbuntuのrsyncが使えます。なので、わざわざ苦労してrsyncコマンドを個別に入れなくてもいいのでは・・・と、これを書きながら思ったのですが、覚書として残しておくのは悪くないかなと…Windows7や古いWindowsを使っているところも少数ながらありますので(言い訳
・・・誰かの参考になれば幸いです