1tlog-play(8) System Manager's Manual tlog-play(8)
2
3
4
6 tlog-play - play back terminal I/O recorded by tlog-rec(8)
7
8
10 tlog-play [OPTION...]
11
12
14 Tlog-play is a playback program for terminal I/O recorded with tlog-
15 rec(8). It reproduces the recording on the terminal it's run under,
16 and can't change its size, so the playback terminal size needs to match
17 the recorded terminal size for proper playback.
18
19 Tlog-play loads its parameters from the system-wide configuration file
20 /etc/tlog/tlog-play.conf, which can be overridden with command-line op‐
21 tions described below.
22
23
25 General options
26 -h, --help
27 Output a command-line usage message and exit.
28
29
30
31
32 -v, --version
33 Output version information and exit.
34
35
36
37
38 --configuration
39 Output program configuration in JSON and exit.
40
41
42
43
44 -s, --speed=NUMBER
45 Set playback speed multiplier to NUMBER.
46
47 NUMBER is a floating-point number to multiply playback speed by.
48 Can be adjusted during playback.
49
50 Value minimum: 0
51
52 -f, --follow
53 Wait for and play back new messages.
54
55 If specified, when the end of the recorded session is reached,
56 wait for new messages to be added and play them back when they
57 appear.
58
59
60 -g, --goto=STRING
61 Fast-forward to STRING time (start/end/HH:MM:SS.sss).
62
63 STRING is a logical location, or a time to which recording
64 should be fast-forwarded. Can be a "start", or an "end" string,
65 or a timestamp formatted as HH:MM:SS.sss, where any part can be
66 omitted to mean zero.
67
68
69 -p, --paused
70 Start playback paused.
71
72 If specified, playback is started in a paused state.
73
74
75 -r, --reader=STRING
76 Use STRING log reader (file/journal/es, default file).
77
78 STRING is the type of "log reader" to use for retrieving log
79 messages. The chosen reader needs to be configured using its own
80 dedicated parameters.
81
82 Value should be one of: "file", "journal", "es"
83
84 --persist
85 Ignore quit key and signals from keyboard.
86
87 If specified, ignore any keyboard-generated signals and the quit
88 key.
89
90
91 --lax Ignore missing (dropped) log messages.
92
93 If specified, ignore missing (dropped, or lost) log messages.
94 Otherwise report an error and abort when a message is missing.
95
96
97 File reader options
98 -i, --file-path=FILE
99 Read log from FILE file.
100
101 FILE is the path to the file the "file" reader should read logs
102 from.
103
104
105 -m, --file-match=STRING
106 Playback explicit recording id specified in STRING.
107
108 STRING is the recording id of the recording the "file" reader
109 should seek to for playback.
110
111
112 Elasticsearch reader options
113 --es-baseurl=STRING
114 Elasticsearch URL without query or fragment parts.
115
116 STRING is the base URL to request Elasticsearch through. Should
117 not contain query (?...) or fragment (#...) parts.
118
119
120 --es-query=STRING
121 Elasticsearch query.
122
123 STRING is the query string to send to Elasticsearch
124
125
126 --es-verbose
127 Enable verbose output on Elasticsearch HTTP client.
128
129 If specified, enable verbose output on Elasticsearch HTTP
130 client.
131
132
133 Systemd journal reader options
134 -S, --journal-since=SECONDS
135 Start searching journal at SECONDS since epoch.
136
137 SECONDS is the number of seconds since epoch to seek to before
138 searching for the first matching log entry.
139
140 Value minimum: 0
141
142 -U, --journal-until=SECONDS
143 Stop searching journal at SECONDS since epoch.
144
145 SECONDS is the number of seconds since epoch at which searching
146 for log entries should stop.
147
148 Value minimum: 0
149
150 -M, --journal-match=STRING
151 Add STRING to journal match symbol list.
152
153 Each STRING specifies a journal match symbol: either a name-
154 value pair, according to sd_journal_add_match(3), or an "OR" or
155 "AND" string signifying disjunction or conjunction, as with
156 sd_journal_add_disjunction(3) and sd_journal_add_conjunction(3)
157
158
159 -N, --journal-namespace=STRING
160 Search for the records in STRING namespace only.
161
162 STRING is the Specifies a specific journal namespace to use.
163
164
165
166
168 Playback can be controlled using the following keys:
169
170
171 SPACE, p
172 Pause/resume playback.
173
174
175 } Double the playback speed. Maximum is 16x.
176
177
178 { Halve the playback speed. Minimum is 1/16x.
179
180
181 BACKSPACE
182 Reset playback to normal, 1x speed.
183
184
185 . Output the next packet immediately, without delay, regardless if
186 paused or not. Press when paused to step through recording.
187 Press once to skip a long pause. Hold to skip through recording
188 at constant speed (the keyboard repeat rate).
189
190
191 G Fast-forward the recording to the end, or to specified time.
192 Works while playing and on pause. The time can be specified by
193 typing in a timestamp before pressing 'G'. The timestamp should
194 follow the format of the -g/--goto option value, but without the
195 fractions of a second. The command has no effect, if the speci‐
196 fied time location has already been reached.
197
198 E.g. pressing just 'G' would fast-forward to the end, which is
199 useful with following enabled. Pressing '3', '0', 'G' (typing
200 "30G") would fast-forward to 30 seconds from the start of the
201 recording. Typing "30:00G" would fast-forward to 30 minutes, and
202 so would "30:G", and "1800G". Typing "2::G" would fast-forward
203 to two hours into the recording, the same as "120:G" and
204 "7200G".
205
206
207 q Stop playing and quit.
208
209
211 /etc/tlog/tlog-play.conf
212 The system-wide configuration file
213
214
216 Recordings can include control sequences attempting to communicate with
217 the terminal, and the playback terminal would dutifully reply to them.
218 Tlog-play tries to filter these responses out, but since it's not a
219 full terminal emulator itself, and since there's a great variety of
220 such control sequences, it can sometimes fail, and interpret some of
221 these as playback control keys described above, with corresponding ef‐
222 fects.
223
224 This is going to be fixed in future releases, possibly by embedding a
225 proper terminal emulator in tlog-play. For now, most recordings would
226 reproduce correctly, but some might exhibit erratic behavior, and it is
227 possible to e.g. make a recording which would skip (hide) a part of it‐
228 self on playback. However, there are other, easier ways to hide actions
229 on a terminal, of course.
230
231
233 Play back contents of a file written with tlog-rec's "file" writer:
234 tlog-play -r file --file-path=recording.log
235
236
237 Play back a recording from Journal:
238 tlog-play -r journal -M
239 TLOG_REC=6071524bb44d403991a00413ab7c8596-53bd-378c5d9
240
241
242 Play back a recording from Elasticsearch:
243 tlog-play -r es --es-baseurl=http://local‐
244 host:9200/tlog/tlog/_search --es-query=session:121
245
246
248 tlog-play.conf(5), tlog-rec(8)
249
250
252 Nikolai Kondrashov <spbnick@gmail.com>
253
254
255
256Tlog March 2016 tlog-play(8)