webdav-syncファイル同期の定番、rsync。UNIX使いには毎度おなじみのrsync。rsyncはとても便利なツールで、2つのディレクトリをPermissionまであわせてコピーしたり、タイムスタンプでの比較、ファイルの増分での比較など、2つのディレクトリの同期コピーでは最強といえます。SSHと一緒に利用すると利便性はUp。SSHのログインさえできるサーバなら、2つのコンピュータのディレクトリを完全に同期させることができるのです。それゆえ、UNIX使いにとって、最後の最後に頼れるバックアップツールはrsyncという、不動の地位を持っているのです。WebDAVサーバに対してrsyncする一番簡単な方法は、WebDAVボリュームをUNIXにマウントしてそこにrsyncする方法なのですが、この方法には大きな問題があります。rsyncは、fstat(ファイルのステータス情報を調べるsyscall)を使って調査し、その上でファイルのコピーを決めるツールなのですが、このとき、大量のチェックを行います。OSXのWebDAVクライアントでは、1ファイル転送する度に平均20弱のHTTPコマンドを発効することになり、いつまで経っても終わらない、残念な状態になります。確かに、rsyncはssh越しでもリモート側でもrsyncが立ち上がり、rsyncがローカルファイルシステムとして、fstatを発効するのです。リモート専用のツールWebDAV-syncを使うそこでリモート同期には、やっぱりリモート同期に最適化した仕組みが欲しくなります。実はWebDAVの場合、プロトコルにPROPFINDというコマンドがあり、このコマンドをつかうとディレクトリ単位でファイルの諸情報を教えてくれたり、ETagsを使ったファイルのシグネチャまで含めて調査できます。これを使えば、理論上、ファイルの調査含めて、1ファイルあたりのファイル転送時のコマンド発行数が1〜2回となり、ネットワーク的に離れたリモートデータ転送に有利です。ここではWebDAV-syncというjavaで作られた「コマンドラインツール」を使います。WebDAV-syncマニュアルがあるので、すぐに使いこなせるとは思いますが、ここでは、1G無料、1Tでも年1万程度で使えるWebDAVサービスのTeraクラウドでの、利用方法を書いてみます。OSXの例ですが、SolarisでもLinuxでもJavaが動く環境であれば、何でも使えるはずです。ローカルの~/Documents(書類フォルダ)を、TeraクラウドのDocumentsにコピーする方法です。バックアップ用ですね。/path-to-inst/webdav_sync.jarは、適当なところにインストールして呼び出してくださいという意味です。ホスト名は、Teraクラウドのアカウント画面から調べてください。~/Documents/起動時直後に、リモート側とローカル側のディレクトリ情報の照合を行うので、そこそこの時間がかかります。私のDocumentsは3分ぐらいかかりましたが、ローカルはSSDだったのでファイル量や、ディスク状況によって大分違うでしょう。これをcronで回せば、ガンガンコピーしてもらえます。コマンドラインにパスワードが乗るのはいささか気分が良くないので、ファイルにする方法もあります。</sync></config>下記の様に実行します。300は、300秒ごとに自動実行するという意味です。/>ディレクティブの単位で、複数のジョブを設定できるので、これはリモートアップロード、これはダウンロード専用、これは双方向同期など、選ぶことができます。javaなので、ファイルサーバなどに設定しておくこともできて便利ですよね。これで、MacやSolarisやLinuxでも、ガンガン、Teraクラウドにバックアップができますね!ちなみに・・・、Teraクラウドの容量は公式にも色んなところに書かれてるように、ZFSがファイルシステムとして実際に使っている容量での算出ですから、実際にはローカルのデータ占有率と異なります。この辺はこのブログを参照してるかたはわかりそうですが、比べてみるとZFSはディスク容量食いですね。引数の抜粋rsyncやcpと違って、ソースとディスティネーションの指定ではなく、ローカル、リモートの設定になります。ローカルのディレクトリ。※ダウンロード、アップロードの場合は、ファイルが更新されていたらアップデートしたり、なくなっていたら削除したりします。ソースと同じものにします。アップロード先を削除するのではなく、.1,.2というサフィックスをつけて保存します。Infinityをサポートしていない場合でも再帰的にファイルを転送しようとします。Infinityをサポートするため不要です。Infinityに対応していても再帰しません既知のバグっぽいものこの場合、ファイル名に特殊キャラクタがあるときに起きるみたいです。僕は+と、%で発生しました。directiveで、~/Documentsなど、変数展開しないと存在しないディレクトリを設定するとエラーが出ました。be.re.webdav.cmd.Sync.main(Sync.java:2343)ソースコードが公開されているので、回避バグパッチも作ったのですが、いちいちビルドするよりは、回避策をとった方が多分楽だと思います。オマケ:rsyncにはVPN越しのNFSが良いか、SSHが良いか?VPNが貼られた環境でNFSマウントができる環境がしばしばあります。このときNFSでマウントしているため、NFSマウントしたディレクトリを直接rsyncした方が良いのか?ssh経由コピーした方がいいのか?という命題がたまにあります。この記事の上の方を一通り読んだ方は、すぐに答えがわかると思います。比べた方ならわかるのですが、最近のマシンだと暗号化コストが小さいため、RTTがそこそこある環境では、だいたいsshの方が有利です。RTTがある環境では、NFSのfstatロスがそこそこにある為ですね。ノイズキャンセラーの性能が良い。WH-1000Xのころは、ノイズキャンセラーを有効すると、音は聞こえないのに妙な音圧があったが、それがかなり軽減。個人的には気にならなくなった。WH-1000Xのころは、ノイズキャンセラーを無効にしても、なんか作られたような音が出ていたような気がしたが、割と普通に聞こえる。USB-Cになったのも良い。入れ始めたので、自分用のまとめ。2019/10/8、Catalinaが振ってきたので製品版用に記載を変えました。32bitアプリを確認すること。Monitorで32bitアプリがわかるので、そういうアプリがあるなら代替品を見つけておくこと。/etc以下のいくつかのファイルをバックアップしておくこと。これらのエラーは、次の様なコマンドで知ることができます。...»続きを読む2017年、新年明けまして、おめでとうございます。新年明けまして、おめでとうございます。今年もよろしくお願いします。昨年中は、皆様にお世話になりました。昨年は、コツコツと3年程前から行ってきた改革がある程度完成された年で、この先5年、10年を見据えて、次のフェーズへと進む為の土台が完成した年でもありました。それにキャッチアップする形で、個々の従業員一同が、役割を自覚し、明確に動けた年であったかと考えています。意外に覚えきれなくて、いつも忘れるので、メモついでに残しておきます。古いOpenSSHや、SunSSHの場合は、これも無効にします。ユーザ目線でのザックリとした説明を。OpenSSHではなく別のSSH実装も含めて考えているので、OpenSSHのソースをじっくり読んだわけではないため、間違ってたらすみません。6.0)化2015年10月10日OTAでない方法で。なんだけど、adbなどが一式使えている状態で。自分の機種のものをダウンロードする。tgzを展開し、zipも解いておく。bootloader自体のアップデート。Capitanで、phpのモジュールインストール2015年10月04日Yosemiteからのアップデートは割と簡単です。きになるなら、hostsとかapache以下全てをバックアップしておいてもいいかも。Capitanにアップデートする。PB4000CBです。今や、モバイルバッテリーは大型のものが好まれるのか、隙間無く商品があります。20,000mAh越えで、「でけえ!」とか言ってますけど、大きいのを探せば、100Wh(27,000mAh)、200Wh当たり前、探せば500Wh(135,000mAh)とか、もっともっとあるのです。