sitecopy で mirroring ダウンロード

問題なくできることを確認。ただし一発では不可。

sitecopy -f サイト名
sitecopy -s サイト名

の二段構えの必要アリ。これは sitecopy の動作が

  • 手元にあるファイルリストのリストを元にサーバ上のファイルとの比較を行なう

ためで、

  • ファイルリストがローカルとリモートで食い違っていると -s オプションは十分に機能することができない

したがってまず

  • -f オプションでリモートのファイルリストを取得しておく

のがカギ。

なお、この方法でちゃんとローカルのファイルは削除される。

いい感じ。これで Wiki や tDiary などサーバ上で直接更新するコンテンツの保全を行なうことができる。sitecopy が sftp に対応したらかなり最強な気がしてきた。(いつもこう思うきっかけがけっこう簡単だよな。)

※ もし local の準備が何もできていなくて、remote の階層が深い場合は何回も fetch する必要がある。少なくとも v0.16.6 ではそのような動きをする。これは LIST 取得したのち、local のディレクトリ作成の前にファイルの転送を試みて失敗するため。失敗後確認するとディレクトリの作成は行われているので、「何回か実行していると同期が終わる」という、少し残念な挙動をする。

More