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