2009年07月23日(木) [長年日記]
- まだ腰痛い。でもだんだん治ってきたかも。
■ [windows] cwRsync で plink を使ってLinuxへファイルコピー
WindowsからLinuxへrsyncを使ってファイルをコピーしたかった。
Windows用のrsyncクライアント
Windows用のrsyncクライアントとしては
- cwRsync (ITeF!x)
というものがよく使われているようだった。cygwin用のrsyncをcygwinなしで動作するようにパッケージングしたものみたい。
cwRsyncとplinkを一緒に使うとエラーになる
cwRsyncには rsync.exe の他に ssh.exe や plink.exe が付属していた。ssh.exeはOpenSSHのSSHクライアントをWindowsでコンパイルしたものみたい。plink.exe というのはPuTTYに付属しているコマンドライン用のSSHクライアントで、ssh.exeと同じようなことができる。
さて、rsyncは -e オプションを使うことでSSHと組み合わせて次のようにしてファイル転送ができる(カレントにあるbinの下にrsync.exe, ssh.exe, plink.exeなど必要な実行ファイルが存在するものとする)。
bin\rsync -avz -e bin/ssh src.txt remote_host:tmp/
が、ssh.exe の代わりに次のようにして plink.exe を使うと下のようなエラーになってしまった。
bin\rsync -avz -e bin/plink src.txt remote_host:tmp/
Unable to read from standard input: ハンドルが無効です。 rsync: read error: Connection reset by peer (104) rsync error: error in rsync protocol data stream (code 12) at io.c(759) [sender=3.0.6]
認証に Pageant を使用したいのでssh.exeでなくplink.exeを使いたいのに。検索するとcwRsyncとplinkの組み合わせはうまく動かないという情報がいくつか見つかった。cwRsyncにplinkが付属しているのに使えないのかよー。
更に cygnative を組み合わせるとうまく動いた
んで、 rsync does work with plink - part 2という記事があって、ここに「rsyncとplinkを一緒に動かせる cygnative というソフトを書いた」ということが書いてあった。
これを使って
bin\rsync -avz -e "bin/cygnative bin/plink" src.txt remote_host:tmp/
としたらうまく動いた。Pageantとの連携もOK。
cygnativeの最新版version1.1はrsync does work with plink - part 3からリンクされている。
■ やること
- シャンプー