それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

オレオレDropBoxをrsyncで作る。

DropBoxは便利らしい。でも同期遅いし、アカウント必要だし。なにより手元に2TBのHDDが転がってる物を生かしたい

ファイル監視して、rsync起動

 #!/usr/bin/env ipyw
 from System.IO import *
 import subprocess
 
 path = "C:\\Program Files\\MySync Suite\\Users\\User0001\\Album"
 fsw = FileSystemWatcher()
 fsw.Path = path
 def watcherhandler(*args):
         subprocess.call('rsync -avz --delete -e "ssh -i /home/takuya/.ssh/id_rsa -o StrictHostKeyChecking=no " {0} takuya@s1:~/casio  '.format(path) )
 
 fsw.Changed += watcherhandler
 fsw.Created += watcherhandler
 fsw.Deleted += watcherhandler
 fsw.Renamed += watcherhandler
 fsw.IncludeSubdirectories = True
 fsw.EnableRaisingEvents = True
 
 while(True):fsw.WaitForChanged(WatcherChangeTypes.All, -1)

ファイルディレクトリの変更を監視、変化に応じて、rsyncを起動してファイルを転送する。

FileSystemWathcer
細かい説明は別エントリに書いた-----> ironpythonWindowsのフォルダを監視する。

rsync の細かいオプションは重要。

-o StrictHostKeyChecking=no
known_hostsにないホストだったらYES/NOだすかどうか→無視
-i path/to/key
id_rsaのキーファイル。WindowsのSYSTEMはフルアクセス(これは無条件でそうなる)でもほかユーザーから読めないこと必須。
takuya@servername
転送先へのログイン名。そのままだとSYSTEMになってしまうので。

あとはこれをサービス登録して

cygrunsrv --install MysyncWatcher --path `cygpath -wa /home/takuya/bin/wacher.py` --chdir `cygpath -wa /home/takuya/bin/`

常駐しておけば、Mysync suiteで同期するたびにファイルがバックアップされる。

たったこれだけでも相当便利な気がする

NASで良いジャン?

ちがうんだよ。NASだと読み込み遅くて邪魔くさいんだよ。


なにより、ネットワークに左右されない。

ファイルが出来たタイミングで同期する。コレが重要。たとえば、「CDを取り込んだら転送。」「写真を取り込んだら転送」「ソースコード編集したら、送信」

ScanSnapとの組み合わせが理想的か。

ScanSnapと組み合わせてファイルと転送したり、ファイルを変換したり、メールに送ったりできるね。ScanSnapのソフトウェア更新を待たなくてよくなる。


応用範囲は幅広い。