unison + plinkでNoPassword file sync

C:\msys\1.0\local\bin
にPATHを通して、unison-2.13.16-win-text.exe, usync.bat, plink.exe を置く。

Puttyで '202.0.0.1' 仕様を作成しておく
[Session] SSH port22 202.181.99.30
[接続] keepalive 60
[接続-Proxy] proxytype:HTTP, proxyhost:proxy.sonycity.sony.co.jp 10080,telnetcommand:connect %host %port\n, socksver:ver5
→telnetcommand: はカラでいい
[接続-SSH-認証]認証のためのプライベートKeyファイル:D:\home\synchronize_file\identity.ppk
→認証のためのプライベートKeyファイル:カラでいい

@echo off
rem Required:
rem unison.win32-textui.exe <http://www.cis.upenn.edu/~bcpierce/unison>
rem plink.exe <http://www.chiark.greenend.org.uk/~sgtatham/putty/>
rem http://www.spurtle.net/unison/
rem http://wiki.monaos.org/pukiwiki.php?shadow%2F%B3%AB%C8%AF%BC%EA%BD%E7%2Fmsys
title Unison / plink file synchronisation
setlocal

rem ### START USER-CONFIGURABLE ENVIRONMENT VARIABLES

rem ### Full path to unison and plink executables
set UNISON_PATH="C:\msys\1.0\local\bin\unison-2.13.16-win-text.exe"
set PLINK_PATH="C:\msys\1.0\local\bin\plink.exe"

rem ### SSH details for plink
set SSH_HOST=202.181.99.30

rem ### Session parameters
rem set SSH_PASSWORD=%1
set SSH_PASSWORD=%1
set LOCAL_ROOT=D:\home\synchronize_file
set REMOTE_ROOT=/home/itouh/synchronize_file

rem ### Full path of temporary batch file which launches plink
rem ### Default location for launch script is same as this script
set SSH_LAUNCH_SCRIPT=%~f0ch.launcher.bat

rem ### Unison parameters (usually a profile name and/or two roots)
if "%REMOTE_ROOT%" == "" set REMOTE_ROOT=%LOCAL_ROOT%
set UNISON_CMD=%LOCAL_ROOT% ssh://%SSH_HOST%/%REMOTE_ROOT%

rem ### Unison options
rem set UNISON_OPTIONS=-contactquietly
set UNISON_OPTIONS=-contactquietly -times -batch

rem ### END USER-CONFIGURABLE ENVIRONMENT VARIABLES

rem Check that an SSH password has been specified
if "%SSH_PASSWORD%" == "" goto :SYNTAX
rem Check that a local directory has been specified
if "%LOCAL_ROOT%" == "" goto :SYNTAX

rem Check that paths are valid
if not exist %UNISON_PATH% goto :UPERROR
if not exist %PLINK_PATH% goto :PPERROR
if not exist %LOCAL_ROOT%\NUL goto :LDERROR

rem Clear screen to hide password
cls
echo.
echo Local directory: %LOCAL_ROOT%
echo Remote directory: %REMOTE_ROOT%
echo.

rem Create batch script to launch plink
rem echo @%PLINK_PATH% -ssh -P %SSH_PORT% %%4 %%5 %SSH_USER%@%SSH_HOST% unison -server > %SSH_LAUNCH_SCRIPT%
echo @%PLINK_PATH% -load 202.0.0.1 -l itouh -pw %SSH_PASSWORD% unison -server > %SSH_LAUNCH_SCRIPT%

rem Run unison (which in turn will call the plink batch script just created)
%UNISON_PATH% -sshcmd %SSH_LAUNCH_SCRIPT% %UNISON_CMD% %UNISON_OPTIONS%

echo Done.

goto :END

:SYNTAX
echo.
echo %0: unison synchronisation script
echo.
echo Syntax: %0 ^<password^>
echo.
goto :END

:UPERROR
echo.
echo Unison not found at %UNISON_PATH%.
goto:END

:PPERROR
echo.
echo plink not fount at %PLINK_PATH%.
goto :END

:LDERROR
echo.
echo Specified local directory %LOCAL_ROOT%\ not found.
goto :END

:END

rem Clean up temporary batch script
if exist %~f0ch.launcher.bat del %~f0ch.launcher.bat > NUL

endlocal