RT:ドヤリング

Twitterのドヤリングアカウント(@doyaling)の出張所です。文章が長くなるときにコチラ使用します。

auのモバイルWiFiルータ(Wi-Fi WALKER HWD14)を1年間弱使ってみて

 ↓のエントリで書いたように、去年の4月にモバイルWiFiルータをイーモバからauに変えました。
 


モバイルWiFiルータを、イーモバからauのやつにかえた - RT:ドヤリング



 それから1年弱が経ったので、以下、観点別に使用感をまとめておきます。

エリアの広さ:LTEが使えるので文句なし

 auLTE網が使えるので、つながるエリアは文句なしに広いです。
 都心、郊外、ちょい田舎の旅行先などで使いますが、「電波がなくて困る」なんてことはほぼありませんね。

通信速度:無理してWiMAX2につなぐところが×

 冒頭のエントリにも書いたのですが、通信モードが3種類あって、


 ノーリミット:WiMAX回線で
 ハイスピード:WiMAXとWiMAX2回線
 ハイスピード+エリア:WiMAXとWiMAX2とLTE回線


 となっており、それぞれのモード内で電波は自動的に選択されます。
 LTEは安定して速いです。WiMAX2は、LTEより速いときと遅い時が半々ぐらいかな。ただしこれは電波が両者ともフル(表示4本)で入る場合の話です。


 問題は、それぞれのモード内で回線が自動選択されてしまうという点です。その時々で最も速度の速い回線が選択されるのであればいいのですが、どうも、WiMAX2の電波がキャッチできる場合は、それがいかに微弱であっても、LTEよりWiMAX2を優先しているようです。
 これが問題になるときはけっこうあって、WiMAX2よりLTEのほうが速い時は多いんですよ。というのも、おそらく基地局数がLTEのほうが断然多くて、最高速度はWiMAX2のほうが速いものの、LTEのほうが安定してしっかり入るんです。微弱なWiMAX2をキャッチしてそれをLTEよりも優先されると、とても遅くなってしまう。


 私は概ね「ハイスピード+エリア」にしてあって、LTEで通信してる時間が3分の2ぐらい、残りの3分の1ぐらいがWiMAX2ですかね。都心でもけっこうWiMAX2は拾えなくてLTEになります。拾えなくてLTEになるならべつに困ることはないのですが、ギリギリ拾えてしまったときがやっかいなわけです。

通信量制限:意識してモードを切り替えれば余裕

 「ハイスピード+エリア」モードでの通信量がカウントされていて、それが月間7GBに達すると、「ハイスピード」と「ハイスピード+エリア」が両方とも速度制限されてしまいます。
 しかも「ハイスピード+エリア」モードは、それを使用すると月間の通信量が1000円上乗せされます。「ノーリミット」と「ハイスピード」しか使わなければ、月間3000円弱で、「ハイスピード+エリア」を少しでも使うと4000円弱になる。
 まあ、4000円弱ぐらいであれば普通の料金なので、基本的にはほぼ常時「ハイスピード+エリア」を使っています。


 大容量の通信をするときは、「ハイスピード」に切り替えてから行います。LTEが使えないですが、こちらのモードでの通信量は7GB制限のカウントに含まれないので、無制限で使えるわけですね。エリア的にも速度的にも結局LTEが一番使えるので、WiMAX及びWiMAX2は、この「速度制限回避」のためだけに存在してる感じです。
 意識的に「ハイスピード」に切り替えながら使えば、「ハイスピード+エリア」での通信量が7GBを超えることは私の場合はないので、問題なく使えています。


 回線別ではなくモード別にカウントのルールが作られているところがややトリッキーですね。
 

端末の安定性:不具合が多い

 これが一番の問題で、端末の不具合というか、おかしな動作が多いです。
 以前使っていたモバイルルータは、基本的にはスリープ状態で持ち歩き、使用するときは電源ボタンを軽く押して起こしてやると電波を掴みに行く・・・という感じでうまく使えていました。
 ところがこのHWD14は、スリープから復帰したあとは半々ぐらいの確率で、MacBookとの接続がエラーになります。電波はあるのに、MacBookの画面上部の電波のマークのところに「!」表示が出ます。インターネットに接続できてないという表示ですね。


 「!」マーク
 f:id:doyaling:20150308235042p:plain


 ブラウザでは「ネットに繋がってません」という注意が出る。
 f:id:doyaling:20150308235054p:plain:w550



 原因は不明で、そういうときはルータを再起動してから使います。1回再起動すれば使えることが多い。
 ↓のようにブリッジモードにすれば安定するという説もありますが、私の場合はそんなに変わらないような気がする。



Wi-Fi WALKER WiMAX2+ HWD14が安定しない、そんな時はブリッジモードで


MacBookとの相性:悪い?

 MacBookとの相性は、悪いんですかね。接続がエラーになることがけっこうあります。
 上述の不具合と同じなのですが、ルータ側の表示では電波がMAXまでビンビン入ってるのに、それと接続しているMacBook Airのほうはインターネットに接続できてないというような状態になることがよくあります(これはMacBookとの相性は関係なくルータそのものの問題な気もしますが)。
 あと、ふつうに使えていたのに、気づいたら接続が切れてたりとかね。以前使っていたルータでは、そういうことは無かったです。

総合的な満足度:△

 総合的には、◎◯△☓でいえば△です。
 auLTE回線がかなりしっかりしているので、なんだかんだで「使える」とはいえます。
 しかし上記のような、接続の不具合はほんとにイライラしますね。せっかく良い電波が飛んでるのだから、安定して使いたいものです。自分が持っている電子機器の中で、ダントツに不安定という感じです。
 また、LTEが飛んでるはずなのに無理して微弱なWiMAX2で頑張ろうとする結果、速度がすごく遅くなって、むかつくのでiPhonedocomo)のテザリングに切り替えるときとかもあります。


 ネット上の情報をみてても、ほとんどは回線の速度とかエリアとか通信量制限の話ばかりで、端末の安定性とかはあまり分からないので、WiFiルータ選びってけっこうリスクあると思います。
 まあ結局、SIMだけ借りて端末を変えながら使うようなのがいいのかもしれないですね。

rsyncでのフォルダ同期時の文字化けが解決した

iconvオプションを使えばよかった

 前回のエントリの最後のほうで書いたように、rsyncでフォルダを同期しようとしたら、同期自体は正常にできるものの、ログの部分に表示される日本語ファイル名が全部文字化けしておりました。


 で、これを解決する方法として、rsyncに--iconvというオプションがあることを知りました。


Macの濁点ファイルをなんとかする - Qiita
http://www.izurunet.jp/2013/04/13/rsync%E3%81%A7%E6%96%87%E5%AD%97%E5%8C%96%E3%81%91%E3%81%99%E3%82%8B%E6%99%82%E3%81%AFiconv%E3%82%AA%E3%83%97%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%92


 はてな人力検索で質問して教えてもらったものです。

rsyncの最新バージョンをインストールする

 ただ、上記のサイトに書かれているようにオプションを付けるだけでは上手くいかなかったんですよね。
 やってみると、

rsync: --iconv=UTF8-MAC,UTF-8: unknown option
rsync error: syntax or usage error (code 1) at /SourceCache/rsync/rsync-45/rsync/main.c(1333) [client=2.6.9]


 というエラーがでる。
 これはなぜかというと、Mac OS Xに標準でインストールされているrsyncのバージョンが古くて、--iconvというオプションに対応していないからのようです。


 それで、先ほどの
 Macの濁点ファイルをなんとかする - Qiita
 にも書いてあるように、Homebrewで最新のrsyncをインストールすることにしました。
 Homebrew自体入れていなかったので、今回初めて導入しました。
 MacにHomebrewをインストールする - Qiita
 このページのコメント欄にあるように、最新のURLを指定して、ターミナルから、

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"


 と打って、指示通りにreturnキーを押してパスワードを入れただけです。


 Homebrewのインストール後、さっきのサイトにしたがって、

brew tap homebrew/dupes
brew install libiconv
brew install rsync


 と打って最新版のrsyncをインストールしました。
 しかしこれはよく考えたらiconvのライブラリをインストールしているわけなので、ひょっとして、rsyncのバージョンは関係なく、このライブラリの有無だけが問題なんですかね?

シンボリックリンクを貼る

 ただ、最新版をインストールしたらそれでおしまいかというと、そうでもなくて、
 backup - rsync --iconv option on Mac not working (sync from remote Linux server to local Mac) - Server Fault
 このページの解説にしたがって、

sudo -s
cd /usr/bin
mv rsync rsync-2.6.9
ln -s /usr/local/bin/rsync .
exit


 という処理をしました。
 これはようするに、もともとMac OSの標準のコマンドとしてインストールされていた
 /usr/bin/rsync
 の名前をまず「rsync-2.6.9」に変更(だからその名前で呼び出せばまた使える)しておいて、同じディレクトリ内にrsyncという名のシンボリックリンクを作成し、従来通りターミナルからrsyncと打った場合にはこのシンボリックリンクを経由して
 /usr/local/bin/rsync
 を起動することにしたということだと思います。


 ちなみに、そのリンク先の
 /usr/local/bin/rsync
 をみてみたところ、それもじつはシンボリックリンクになっていて、参照先は
 /usr/local/Cellar/rsync/3.1.1/bin/rsync
 となっていました。ここに、Homebrewでインストールされた最新のrsyncが置かれてるわけですね。


 つまりこれは、新しくできたシンボリックリンクである
 /usr/bin/rsync
 が、いったん
 /usr/local/bin/rsync
 という別のシンボリックリンクを経由して
 /usr/local/Cellar/rsync/3.1.1/bin/rsync
 を起動しにいくという、二段ジャンプみたいな感じだと思います。


 べつに二段ジャンプにせずに直接参照することにしてもいいと思うし、そもそもターミナルから
 /usr/local/Cellar/rsync/3.1.1/bin/rsync
 か
 /usr/local/bin/rsync
 を指定して実行することにすれば、
 /usr/bin/rsync
 を書き換える必要もないと思いますが。


 まぁ、何はともあれ、これでうまく--iconvオプションが使えるようになりました。

rsync -auv --delete --iconv=UTF8-MAC,UTF-8 /Volumes/4TB_Main/ /Volumes/4TB_Backup/


 というふうにやると、日本語文字化けしない状態でrsyncを実行することができます。ファイル名の文字コードをUTF8-MACからUTF-8に変えているという意味ですね。

さらなる落とし穴

 しかし!
 日本語ファイル名を文字化けさせずに同期できるようになったのはいいんですが、ヘンなことに気づきました。
 上記のように--iconvオプションをつけると、同期元で更新されていないファイルまで全て新たに同期先へ上書きされてしまい、差分だけの同期にならないです。
 解決方法あるのかもしれませんが、現段階ではわかりません。調べてもないけど。
 これはかなり困る(同期にものすごい時間がかかる)ので、基本的には--iconvオプションなしで日々の同期を実施し、何かエラーが起きたときにターミナルからログをみながら操作するという場面で使うぐらいにしとこうかな……。


 困ったので、人力検索で新たに質問を立てている。
 Macでのrsyncコマンドの使い方についての質問です。 http://q.ha… - 人力検索はてな


 結論としてはよくわからない。

rsyncコマンドで外付けHDD同士を同期し、バックアップする

rsyncAutomatorでフォルダ同期を行う

 外付けHDDにいろいろデータを入れてるんですが、それをまるごと別の外付けHDDにバックアップする方法を考えておりました。外付けHDDを3台持っていて、1台目はオリジナルデータ用、2台目はiMac本体のTimemachineバックアップ用、そして3台目が空いてるので、これを1台目のバックアップ用にしようかなと。


 f:id:doyaling:20150216102351j:plain:w300


 最初、RAIDで外付けHDD同士をミラーリングを設定しようとも思いましたが、やったことなくてよく分からないし、頻繁に抜いたり挿したりする外付けHDDでRAIDって大丈夫なのか?っていう恐怖もあったので、とりあえずやめとくことに。
 Timemachineのバックアップ対象にするという手もありますが、持っているHDDの容量の関係でちょっとむずかしい(ややこしいので具体的な事情は省略)。


 結局なにがしたいかというと、1台目の外付けHDDを3台目の外付けHDDに「同期」したいということです。新しく追加したファイルをコピーし、削除したファイルは両方のHDDから消えるように。もちろん、まるごと差し替えではなく、変更があったファイルだけを更新してくれればよい。


 フォルダの同期をしてくれるアプリは、ここにいくつか紹介されています。
 http://veadardiary.blog29.fc2.com/blog-category-56.html


 一応、イメージに最も近いのは「Simple Sync」っていうアプリで、使ってみたら動いたんですが、2008年のアプリでその後アップデートされていないせいか、ちょっと変なところがある。
 そこで、もうめんどうなので、「rsync」というシェル(bash)のコマンドをAutomatorに設定して、バックアップの際にこれを毎回起動することにしました。Automator使わなくてもターミナルを起動して打てばいいのですが、アイコンをクリックするだけのほうが簡単なので…。


 rsyncの使い方はここにまとまっています。
 http://x68000.q-e-d.net/~68user/unix/pickup?rsync


 使い方は非常に簡単で、

rsync -au --delete 同期元ディレクトリ 同期先ディレクトリ


 と記述すればいい。「-a」はおすすめの設定がまとまっているオプションですが、これだけでは足りないので-uと--deleteを設定しています。「-u」は同期先にある同じ名前のファイルが同期元より新しかった場合は上書きしないというオプション、「--delete」は同期元のファイルが削除された場合は同期先のファイルも削除するというオプションですね。
 「--delete」を付けておかないと、同期元で不要になったので消したファイルが同期先ではずっと残っていたり、同期元の内部で所属するフォルダを移動したファイルは移動元と移動先の両方に存在するようになったりして、同期先の容量がどんどん増えていってしまいます。


 まず、Automatorを起動して、新規ドキュメント(Application)を作成します。


f:id:doyaling:20150216033244p:plain


 次に、(私は英語設定で使っているので)「Run Shell Script」を選択して、内容のところに上記コマンドを書くだけです。最初に「cat」って入っているのは消して大丈夫です。


f:id:doyaling:20150216033227p:plain


 私は「4TB_Main」という名前の外付けHDDから「4TB_Backup」という名前の外付けHDDに同期したいので、

rsync -au --delete /Volumes/4TB_Main/ /Volumes/4TB_Backup/


 と書きます。これだけ。
 
 

アクセス権のエラーに対応する

 ところがこれをAutomatorに設定して起動すると、エラーが出ました。


f:id:doyaling:20150216032656p:plain


 エラーの内容を確認するため、ターミナルから打ってみました。ターミナルから打つときは、「-v」オプションを付けることで、処理内容の履歴がみれます。ここのエラーの情報も出てきます。

$ rsync -auv --delete /Volumes/4TB_Main/ /Volumes/4TB_Backup/
building file list ... rsync: opendir "/Volumes/4TB_Main/.DocumentRevisions-V100" failed: Permission denied (13)
rsync: opendir "/Volumes/4TB_Main/.Trashes" failed: Permission denied (13)
done
IO error encountered -- skipping file deletion
(中略)
sent 39781500 bytes  received 576 bytes  533987.60 bytes/sec
total size is 1859690882822  speedup is 46746.95
rsync error: some files could not be transferred (code 23) at /SourceCache/rsync/rsync-45/rsync/main.c(992) [sender=2.6.9]


 まぁ私はこんなのを見てもあまり意味がわからないので、とりあえず最後のほうのエラーコードみたいなやつでググってみたところ、こういう解説がありました。
 http://open-groove.net/linux-command/rsync-memo/
 しかし、ここに書かれてるようにオプションを「-rlpt」にしても正常化はしませんでしたね。
 それで英語のサイトもいくつかみてみたのですが、ファイルシステムNTFSの場合はコピー出来ないファイルがあるのでどうたらこうたらみたいな説明があった程度で、結局今回の件の解決方法は分からず。


 ただ、rsyncが上手くいかない時というのは、要するにデータの所有者だのアクセス権だのの問題が起きているらしいという雰囲気はわかりました。


 たぶんですね、さっきの実行結果の中で、「opendir "/Volumes/4TB_Main/.DocumentRevisions-V100" failed: Permission denied (13)」とか「opendir "/Volumes/4TB_Main/.Trashes" failed: Permission denied (13)」とか出ていたところから推測するに、外付けHDDのボリューム(/Volumes/4TB_Main/)の直下にあるシステムファイルの類が、パーミッション(アクセス権)*1の不足によってコピー出来ないという話だったと思われます。
 なので、パーミッションを与えておけばいいんでしょう。


 パーミッションの変更については、以下の頁を参考にしました。
 【 chmod 】 ファイルやディレクトリのアクセス権を変更する | 日経クロステック(xTECH)
 ファイルパーミッションの変更 - WordPress Codex 日本語版
 UNIXの基礎知識・パーミッション編


 まずターミナルで、外付けHDDのボリュームに移動してから、「ls -la」*2と打って、隠しファイルも含めた全てのファイルとディレクトリの属性情報を表示します。
 すると以下のような一覧表が表示される。


f:id:doyaling:20150217013010p:plain


 一番左のrとかwとかxとかが並んでいるところパーミッションですね。見方は上記のリンク先に書いてありますが、1文字目が「ファイルかディレクトリか」を表していて、ディレクトリなら「d」になり、ファイルだと「-」になっている。で、2文字目からは3文字単位で、「所有者のパーミッション」「グループのパーミッション」「その他の人のパーミッション」が並んでおり、この3文字の固まりは「読み(r)」「書き(w)」「実行(x)」を表している。
 たとえば「.DS_Store」は「-rwxr-xr-x」なので、これはファイルであって、所有者には読み書き実行が全て許されているが、グループとその他のユーザには読みと実行しか認められていない。


 で、rsyncを実行するのは所有者なので、たぶん所有者に「r」が許されていないファイルがコピーできなくて問題になるんじゃないでしょうかね。実際、「.DocumentRevisions-V100」と「.Trashes」は「r」が許されていません。
 まぁ、ゴミ箱なんて同期する必要がないとも思いますが、まるごとコピーするのが目的なので、ボリューム内の全てのファイルについて、「所有者はrwx、グループとその他はr-x」という設定に変えておきます。(1個1個設定してももちろんいいんだと思います。)
 ネットワークに繋がってたりするとアクセス権を安易に緩めるのもヤバイ気がしますが、私の場合は大丈夫でしょう、たぶん(よく分かってない)。
 「rwx」は数字の7、「r-x」は数字の5が対応しているので、

chmod -R 755 /Volumes/4TB_Main/
chmod -R 755 /Volumes/4TB_Backup/


 としておきました。「-R」は「再帰的に変更」ってやつで、配下のファイル・ディレクトリにすべて適用するという意味のオプションです、たぶん(よく分かってない)。


 以上のように設定してからrsyncを再度試したところ、めでたく、エラーが起きなくなりました!


 あとは、「HDD_Sync」と名づけて保存したアプリをクリックして、


 f:id:doyaling:20150216032723p:plain:w280


 歯車の表示が消えるまで待ってれば同期が完了します。


 f:id:doyaling:20150216032736p:plain:w400


 さらに、↓に説明されているような手順で、たとえば毎日朝3時に同期するみたいなスケジュールを組んでおくこともできますね。(今はiCalではなくCalendarですが。)
 http://www.arataman.com/index.php?ID=194
 
 

ファイル名長すぎるというエラー(追記)

 上手くいったとおもったのですが、同期が終了するのを待っていたら、以下のようなエラーが起きていました。

rsync: recv_generator: failed to stat "/Volumes/4TB_Main/01_Working/?\#207??\#202\#212?\#234??\#203??\#233??\#220?\#233??\#215/91_?\#220?\#224?\#201\#213?\#202\#211/?\#202??\#202??\#203??\#203?F?\#203??\#203\#236?\#202??\#203\#213?\#203??\#203??\#203??\#200\#201?\#203??\#202??\#202??\#202\#231?\#203??\#202??\#203??\#202??\#202\#231?\#202??\#203??\#203\#210?\#203??\#217?\#214永?\#230\#237?\#210訳?\#211?\#217?\#225?谷?\#235?\#200?\#210解説?\#211?\#200\#216?\#237??\#201??\#201\#204?\#201\#213?\#201??\#201\#227?\#201??\#200\#214?\#206\#215?\#231??\#230\#216?\#200\#215?\#201\#225?\#202\#214?\#201\#237?\#201\#213?\#200\#225?\#202??\#203??\#202??\#202??\#203??\#203\#210?\#202\#231?\#203??\#202??\#233??\#233?館?\#201\#213?\#202\#211?\#202??\#203??\#202??\#203??\#203\#215?\#203\#203?\#203\#210?\#201??\#201??\#202\#231?\#200\#225?\#200\#217?\#227??\#214BP社.pdf": File name too long (63)


 こういうものなんですが、文字化けしてるのはとりあえず措いといて、ファイル名が長すぎるよと。
 いや、そう言われても、OS上で普通に認められている長さのファイル名しか付けてないはずなのですが……rsyncの時にはそれよりも制限が厳しいんですかね?
 よくわかりませんが、このエラーがたくさん(といっても10ファイルぐらい)出ていたので、仕方なく1個1個ファイル名を短めに変更していったら、一応エラーは出なくなりました。


 ところで上記の文字化けは何とかならないんでしょうか。
 ファイル名はUTF-8のはずで、ターミナルもUTF-8に設定しているし、このへんを参考にbash_profileに

export LANG=ja_JP.UTF-8
export LESSCHARSET=utf-8


 という2行は書きましたが、解決せず・・・。
 ふつうにフォルダを移動したりファイルを開いたりする分には、日本語でできてるんですが、rsyncの処理結果の部分だけ文字化けしてしまいます。
 上記の作業では、ファイル名の中に英数字の部分もあるので、それを頼りに「どのファイルのファイル名が長すぎるのか」を特定してGUIでファイル名変更しましたが。

*1:Mac OSを日本語設定で使ってると「アクセス権」と呼ばれていると思いますが、英語設定だとPermissionなので分かりにくいですね。ディスクユーティリティの「アクセス権の修復」も英語では「Repair disk permissions」です。

*2:-lはファイルの詳細情報を表示するオプション、-aは隠しファイルも表示するオプション。