DejaView(1) | BSD General Commands Manual | DejaView(1) |
DejaView -- reconstruct state in a log archive at a given time.
dejaview [options] <archive> <config> <date/time>
DejaView is a versatile tool used to reconstruct state of an identifier at a given time in a log archive.
Arguments descriptions:
archive
config
date/time
´YYYY-MM-DD HH:MM:SS+ffff'
´YYYY-MM-DD HH:MM:SS'
´HH:MM:SS'
Time must have single or double quotes surrounding it.
Essentially, the file should contain a section header, which contains keys with values. Sections are led by a [section] header, followed by key/value entries separated by a specific string ('=' or ':'). Key names are not case sensitive. Leading and trailing whitespace are removed from keys and values.
Lines beginning with '#' or ';' are ignored and may be used to provide comments.
[Simple Values]
key=value
spaces in keys=allowed
spaces around the delimiter = allowed
you can also use : to delimit keys from values
[You can use comments]
# like this
; or this
KEYS
VALUES
format specifiers encapsulated with double curly brackets '{{ }}' signifies a special word that will be used as an object identifier.
format specifers encapsulated with double veritical lines '|| ||' signifies a special word that will used as return data stored in the corresponding key. If no return data is specified, a timestamp for the event message will be returned by default.
Values support marcos. This means values can contain format strings which refer to other values in the same section.
[Paths]
home_dir: /Users
my_dir: %(home_dir)s/Documents
my_pictures: %(my_dir)s/Pictures
In the example above, %(home_dir)s would resolve to the value of home_dir (/Users in this case) and %(my_dir)s would resolve to /Users/Documents
This example is specific to runningboard and encorporates all required and optional key words. It also includes examples of using the vertical bars as return data and using the curly brackets to aggregate data under process names.
[runningboard]
start: Now tracking process [%s<{{%s}}>:%d]
role: [%s<{{%s}}>:%d] Set darwin role to ||%s||
state: [%s<{{%s}}>:%d] ||%s|| task.
end: [%s<{{%s}}>:%d] Death sentinel fired!
reboot: Battlecruiser operational.
subsystem: com.apple.runningboard
[runningboard again]
start: Now tracking process [%s<{{%s}}>:%d]
role: [%s<{{%s}}>:%d] Set darwin role to ||%s||
state: [%s<{{%s}}>:%d] ||%s|| task.
end: [%s<{{%s}}>:%d] Death sentinel fired!
subobject start: Assertion ${%s}$ (%s:%s<{{%s}}>) will be created as
||active||
subobject end: Invalidating assertion ${%s}$ (%s:%s<{{%s}}>) from
originator %d
subobject end2: Assertion did invalidate due to timeout: ${%s}$
(%s:%s<{{%s}}>)
reboot: Battlecruiser operational.
subsystem: com.apple.runningboard
Output will only contain information that the DejaView encountered while reading the log archive. If an event message was not found before the tool reaches the user specified time, it will not be included in the output.
com.apple.runningboardd
start: 2019-07-05 12:27:55.121296
com.apple.backboardd
start: 2019-07-05 12:27:55.649434
com.apple.Carousel
start: 2019-07-05 12:27:55.694207
role: UserInteractiveNonFocal
com.apple.mediaserverd
start: 2019-07-05 12:27:57.811533
--help, -h General help.
os_log(3), os_trace(3), log(1)
File radars against Darwin | Tools
01 Aug 2019 | 1.0 |