サイト更新をftpからrsyncに変更

森を走ろう!のwebサイトは、GMOのvalueserverというレンタルサーバに置いてあります。その内容のオリジナルはパソコンに置いてあり、パソコン上で変更した内容を、ffftpというファイル転送ソフトのミラーリング機能で一括でサーバに反映させてきました。

現在、およそ1.2GBで30,000ファイルあります。

ところが、先日、GMOがftpサーバを変更し、ftpの「NLST -R」という大量ファイルを高速に検索する機能が、「RFC(インターネットに関わる技術的仕様群)のFTP標準規格に、現在では非準拠となっており、FTP サーバーソフトウェアが対応していない状況でございます。」という事で停止されてしまいました。この機能が使えないために、ミラーリングの処理がおかしくなり使い物にならなくなりました。このままだと1個1個転送を指示するしかなくなってしまいます。

そこで、調べた結果、使えそうと判ったのがrsyncという機能。この機能は、ネットで結ばれたコンピュータ間でファイルの同期をとれるもの。実は森を走ろう!のバックアップは、だいぶ前からこのrsync機能で日に一度自動で別のレンタルサーバに同期させています。調べた結果、パソコンのwindows上でも動くrsyncがあると判り、結構ドタバタしましたが、なんとか移行できました。

以下、導入のドタバタ。

・双方のコンピューターのrsyncプログラムが通信して処理をするので、windows上にもインストールが必要。cwRsyncというのをこちらから入れました。公開鍵の設定をします。

・準備が済んで実行しようとすると、.sshフォルダのアクセス権が緩すぎるとか出てきて、うまく動きません。ググってアクセス権を変更する処理しようとするも(cygwinをインストして、chgrpとchownで変更する作業)、うまく変更できません。結局、管理者権限で実行したら、うまく動きました。会社で使うようなパソコンだと、このあたりセキュリティ上問題ありでしょうが、個人専用なので、これ以上の追及はしませんでした。

・ffftpの時は、パソコン上では文字コードSJISで管理し、ffftpでEUC-JPに変換して、サーバに送ってました。しかし、rsyncでは文字コード変換はない(はず)ので、パソコン上にEUC-JPで置いておく必要あり。そこで、rsyncでサーバtoパソコンの転送をしました。そして、この転送されたファイルを編集しようとすると保存ができません。ググって、アクセス権を変更したら、編集できるようになりました。

これらのファイルのあるフォルダ名はrsync_rootとしました。このフォルダの プロパティ -> セキュリティタブ -> 詳細設定ボタン で開くセキュリティの詳細設定画面によると、Administratorは「フルコントロール」なのに対し、自分のアカウントは「読み取りと実行」になっていました。そこで、自分のアカウントを編集して「フルコントロール」にして、継承の有効化に「チェック」を入れて、「OK」ボタンを押したら、時間はかかるが下位のファイルも編集可能になりました。rsync_rootのプロパティ画面の上部にある編集ボタンでも同様の変更ができるように見えるが、そちらでは時間をかけて変更しているような画面になるが、終わってみると元のままであり、全く騙されたかのよう。ここでは「フルコントロール」にしましたが、もう少し制限のあるアクセス権で良いようです。参考にしたのは、http://www.teppi.com/solution/file_mgmt/006_filing_win_acl01.htmです。

なお、この方法は、そのレンタルサーバでrsyncの利用が許可されていないと使えません。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です