MacBook Pro Retinaディスプレイモデルの価格変更が発表されました。最近は円安基調ですが、下位モデルは6000円、上位モデルも約1万円値下げされています。一方、MacBook Air 13インチの下位モデルは6000円の値上げ。円安にあわせた価格変更なのかどうなのか、単純な判定はできませんね。

さて、今回は「ログファイル対策」について。知らぬ間に数GB規模のログファイルが作成されていた筆者の環境を例に、なにをきっかけに気づきどのように対策を講じたか、事例を紹介してみよう。

マメ過ぎる「GoogleSoftwareUpdateDaemon」

結論からいうと、刻々と更新されるログファイルが不当なボリュームにまで膨らんでいることは、空きディスク領域に余裕がなくなりシステムに警告されるか、よほどの偶然がなければ気付かない。企業のシステム管理者でもないかぎり、ログファイルをまめにチェックすることはないはずで、その存在を意識した経験すらないユーザも多いことだろう。

筆者の場合、第84回でアプリケーションのクラッシュが頻発したとき、多数のログをチェックする過程で気が付いた。システムワイドなログフォルダ(/Library/Logs)と、ユーザ別のログフォルダ(~/Library/Logs)を対象に、Terminalでlsコマンドを使い詳細情報を一覧表示(ls -lR)したところ、巨大なファイルを/Library/Logsに発見したのだ。

そのファイルは「GoogleSoftwareUpdateDaemon.log」。名前から判断すると「Googleソフトウェアアップデート」のログファイルだが、サイズはなんと約3.7GB。一般ユーザの権限では閲覧できないため(つまりユーティリティフォルダにある「コンソール」では閲覧できない)、管理者権限でlessコマンドを実行しファイルを閲覧してみると、先頭行のタイムスタンプはMac購入以前、つまり前機種でLionを使用していた時代にインストールしたGoogleソフトウェアアップデートから引き継がれたものと判明した。

$ sudo less /Library/Logs/GoogleSoftwareUpdateDaemon.log

いつの間にか4GBに迫る勢いでファイルサイズが膨らんでいた、Googleソフトウェアアップデートのログファイル

ログファイルには管理者以外読み書きできないようパーミッションが設定されているため、内容の閲覧は「sudo less ~」としたほうがいい

なぜこのサイズにまで膨らんだかだが、システムが稼働している間中、GoogleSoftwareUpdateDaemonがマメにログを書き込んでいるためだ。システムログを「コンソール」で調べてみたところ、GoogleSoftwareUpdateDaemonの起動に用いられるプロパティリストの記述に問題があるようで、10秒刻みでログが追記されていることがわかった。その誤りを調べ手を打つのもひとつの方法だが、筆者はそこまでしようとは思わなかったので、「Googleソフトウェアアップデート」を削除し、その後ログファイルを消去するという方法を選んだ。

$ sudo /Library/Google/GoogleSoftwareUpdate/GoogleSoftwareUpdate.bundle/Contents/Resources/GoogleSoftwareUpdateAgent.app/Contents/Resources/install.py --uninstall
$ sudo rm /Library/Logs/GoogleSoftwareUpdateDaemon.log 
$ rm ~/Library/Logs/GoogleSoftwareUpdateAgent.log

「コンソール」でsystem.logの内容をチェックしたところ、10秒刻みでログが出力されていることを確認できた

たまにはログファイルをチェックしよう

これで、あまりにマメ過ぎる「GoogleSoftwareUpdateDaemon」の脅威は去った。その代償として、Googleソフトウェアのアップデート情報を知るタイミングが遅れるようになるものの、筆者の環境では特に支障ないと判断したのだ。SSDを搭載したMacなどディスク容量がタイトな環境では、これが現実的な対処法ではなかろうか。

今回は例として「GoogleSoftwareUpdateDaemon」をピックアップしたが、マメすぎてファイルサイズが膨らんでいるログファイルは少なくない。存在に気がつかないのは、管理者権限を要求するソフトウェア(サービス/デーモン)がログを記録する領域は、Finderで不可視領域あるいはふだん開かない領域だからだ。ディスクスペースを有効に活用したければ、ときどきログファイルは削除したほうがいい。

Aqua(Cocoa/Carbon)環境で動作するアプリケーションの多くは、ログファイルを/Library/Logまたは~/Library/Logsに作成する。いずれもSpotlightやFinderの機能では検索できないため、次のようにTerminalからfindコマンドを実行してみよう。この例では、ファイルサイズ100MB以上を条件としているが、50MB以上(+50M)としてもかまわない。

$ find /Library/Logs -size +100M
$ find ~/Library/Logs -size +100M

Finderで/Library/Logsなどの領域を探してもいいが、サイズの大きいログファイルの検索はfindコマンドを使ったほうがラクだ

もうひとつ、ログファイルが大量に置かれている領域がある。それは「/var/log」(実体は/private/var/log)で、ここにはシステム起動時に出力されるログ、Webサーバ(Apache)やプリントサーバ(CUPS)が書き出すログが保管されている。

通常は過剰なサイズに達することはないが、なにか異常が発生し秒刻みでログを出力し始めることがあれば、GBレベルになる可能性はある。/var/logには管理者以外読み書き不可のサブディレクトリがいくつもあるため、以下の要領でsudoコマンドを組み合わせてfindコマンドを実行し、肥大化したログファイルを探しだそう。

$ sudo find /var/log -size +100M