MacOS Sierraでタイムマシンのログを表示する方法は?
以前のバージョンのOSXでは、このように過去のTime Machineバックアップジョブの結果を表示することができました:
sudo syslog -F '$Time $Message' -k Sender com.apple.backupd
現在、syslogはもはやオペレーティングシステムの一部ではありません。これは、"log."に置き換えられています;
私は "log." を使ってタイムマシンのジョブに関する情報を見つけることに失敗しました。また、(新しいバージョンの)コンソールを使っても失敗しました。
何か提案はありますか?
40
6
macOS Sierraでは、Unified Logging(メモリとデータストア、もはやテキストファイルではない)を採用しています。
しかし、
log(1)
ユーティリティを使えば、ログの表示、フィルタリング、操作などを行うことができます。man log`を参照してください。また、TimeMachineに特化した例をいくつか紹介します:ログをライブでストリーミングする(
tail
のように):log stream --style syslog --predicate 'senderImagePath contains[cd] "TimeMachine"' --info` 。
ストリームは行わず、ログの終了を表示する:
log show --style syslog --predicate 'senderImagePath contains[cd] "TimeMachine"' --info
です。私も同様の問題を抱えていました。 このシェルスクリプトを書いて、ログからのTime Machineアクティビティの最後の12時間を見せてから、ログをライブで追跡し続けます。
私はそれを「tm-log」と呼びます。
GUIコンソールアプリでTime Machineのメッセージをライブ表示したい場合は、アクションメニューで"Include Info Messages"を有効にしてください。
すると、便利なTime Machineのステータスメッセージが表示され、
Category:TMLogInfo
のような検索でフィルタリングすることができます。Consoleは開く前から何も表示されないので、履歴を見るには
log(1)
が必要なようです。現在、私の解決策は、
log stream --style syslog --predicate 'subsystem == "com.apple.TimeMachine"' --info
を使うことです。しかし、私はそれに満足していないので、私はまだより良い方法を探しています。コピー&以下に示すように、以下を正確に貼り付けます。
ログショー--predicate 'subsystem == "com.apple.Ti meMachine" '--info | grep 'upd:(' | cut -c 1-19,140-999。
「ターミナル」タイプ(またはここからコピーして貼り付け):
これは機能しますが、これはストリーミングであるため、発生時にアクティビティを表示します。 タイムマシンアクティビティがない場合-あまり表示されません(または何も表示されません)。 最初は、数日前のものをどこかにキャッシュする可能性があるものをダンプするかもしれませんが、その後、ログをほぼリアルタイムで表示します。
ログのこのストリームを使用して、バックアップの完了を妨げていたディスク上の特定の破損したファイルを識別しました。 ファイル(実際にはフォルダー全体)とwoillaを削除しました-最初の実行でバックアップが完了しました。 これ以上のエラーはありません。