質問するログイン新規登録
terminal

Terminalは、Apple社のmacOSに標準で付属しているUNIX端末エミュレータ。UNIXコマンドによってMacの操作および設定を行うことができます。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

Q&A

解決済

1回答

172閲覧

Macのlastコマンドで参照されるファイルが見つからない

One_of_Arthur

総合スコア83

terminal

Terminalは、Apple社のmacOSに標準で付属しているUNIX端末エミュレータ。UNIXコマンドによってMacの操作および設定を行うことができます。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

0グッド

0クリップ

投稿2025/07/15 08:43

0

0

実現したいこと

Macのlastコマンドで参照されるファイルを見つけて中身を直に扱うアプリを作りたい。

発生している問題・分からないこと

Macのターミナルでlastコマンドを実行すると、OS起動日時やログイン日時が一覧で表示されますが、このコマンドで参照しているログファイルは「/var/log/wtmp」であると、ググると出てくるのですが、それが見つかりません。
もしかしたら、OSのバージョンによって違うのかとも思っていますが、参照しているログファイルを教えてください。

該当のソースコード

cd /var/log/ pwd ls -a

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

cdコマンドで「/var/log/」に移動し、ls -aコマンドでディレクトリの中身を表示すると以下の様になりました。
「wtmp」がありません。
念のため、pwdコマンドでカレントディレクトリを表示するとちゃんと「/var/log」と表示されます。

. powermanagement
.. ppp
CoreCapture shutdown_monitor.log
CoreDuet system.log
DiagnosticMessages system.log.0.gz
JustSystems system.log.1.gz
acroUpdaterTools.log system.log.2.gz
alf.log system.log.3.gz
apache2 system.log.4.gz
appfirewall.log system.log.5.gz
asl system.log.6.gz
com.apple.wifivelocity uucp
com.apple.xpc.launchd weekly.out
cups wifi.log
daily.out wifi.log.0.bz2
displaypolicy wifi.log.1.bz2
displaypolicyd.stdout.log wifi.log.10.bz2
dm wifi.log.2.bz2
fsck_apfs.log wifi.log.3.bz2
fsck_apfs_error.log wifi.log.4.bz2
fsck_hfs.log wifi.log.5.bz2
install.log wifi.log.6.bz2
jreinstall.log wifi.log.7.bz2
kernel-shutdown.log wifi.log.8.bz2
mDNSResponder wifi.log.9.bz2
monthly.out

補足

macOS 13.7.6 (22H625) Ventura

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

AIに聞いて以下の回答がありました。バイナリファイルなので、直接参照してもあまり意味なさそうです。


macのlastコマンドが参照しているログファイルは、伝統的なUNIXシステムで使われている /var/log/wtmp とは異なり、macOS独自のログシステムに由来します。

ログファイルの実体
結論から言うと、lastコマンドの情報の直接的な実体は、/private/var/log/asl/ ディレクトリ内に保存されているApple System Log (ASL) のバイナリファイルです。

しかし、最近のmacOSでは、このASLも「統合ログシステム (unified logging system)」に置き換えが進んでいます。そのため、lastコマンドは、この統合ログシステムに記録されたデータを利用していると考えるのがより正確です。

これらのログは人間が直接読むためのテキストファイルではなく、専門のコマンドやアプリケーションを通じてアクセスするように設計されています。

macOSのログシステムの変遷
macOSのログシステムは、バージョンアップに伴い以下のように変化してきました。

初期のmacOS (Mac OS X v10.4 Tiger以前):
伝統的なUNIXと同様に、ログイン履歴は主に /var/log/wtmp や /var/log/utmp といったファイルに記録されていました。

中期のmacOS (Mac OS X v10.5 Leopard以降):
Apple System Log (ASL) が導入され、ログの管理方法が変わりました。lastコマンドが参照するデータも、ASLのデータベース(/private/var/log/asl/ 以下)に格納されるようになりました。この変更により、/var/log/wtmp は使われなくなりました。

現在のmacOS (macOS Sierra 10.12以降):
統合ログシステム (Unified Logging System) が導入されました。これは、カーネルとユーザー空間のログメッセージを効率的に収集・保存・閲覧するための、より高性能なシステムです。lastコマンドも、この新しいシステムのデータを利用しています。ログの閲覧や管理には、主にlogコマンドや「コンソール.app」が使用されます。

要約すると、lastコマンドはmacOSの進化に合わせて、その裏側で参照するデータソースを変更してきましたが、現在では統合ログシステムの一部として機能していると言えます。ユーザーがログイン履歴を確認する際は、従来通り last コマンドを使うのが簡単ですが、より詳細なログを調査する場合は log コマンドやコンソールアプリの利用が推奨されます。

投稿2025/07/15 09:37

AbeTakashi

総合スコア4928

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

One_of_Arthur

2025/07/15 10:31

ご回答、有難う御座います! 明日、検証してみようと思います。
One_of_Arthur

2025/07/16 09:37

それらしきファイルを見つける事ができましたが、「Hex Fiend」アプリで覗いてみたところ、解析は難しそうです。 参照しているログファイルを直接扱うのはやめて、他の方法を検討します。 有難うございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.30%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問