]>
Commit | Line | Data |
---|---|---|
3e67e5c9 | 1 | #!/usr/bin/env python3 |
d3b7fd54 ZJS |
2 | import sys |
3 | import argparse | |
4 | ||
5 | PARSER = argparse.ArgumentParser() | |
6 | PARSER.add_argument('n', type=int) | |
7 | PARSER.add_argument('--dots', action='store_true') | |
2c1a55cf ZJS |
8 | PARSER.add_argument('--data-size', type=int, default=4000) |
9 | PARSER.add_argument('--data-type', choices={'random', 'simple'}) | |
d3b7fd54 ZJS |
10 | OPTIONS = PARSER.parse_args() |
11 | ||
12 | template = """\ | |
13 | __CURSOR=s=6863c726210b4560b7048889d8ada5c5;i=3e931;b=f446871715504074bf7049ef0718fa93;m={m:x};t=4fd05c | |
14 | __REALTIME_TIMESTAMP={realtime_ts} | |
15 | __MONOTONIC_TIMESTAMP={monotonic_ts} | |
16 | _BOOT_ID=f446871715504074bf7049ef0718fa93 | |
17 | _TRANSPORT=syslog | |
18 | PRIORITY={priority} | |
19 | SYSLOG_FACILITY={facility} | |
20 | SYSLOG_IDENTIFIER=/USR/SBIN/CRON | |
21 | MESSAGE={message} | |
22 | _UID=0 | |
23 | _GID=0 | |
24 | _MACHINE_ID=69121ca41d12c1b69a7960174c27b618 | |
25 | _HOSTNAME=hostname | |
26 | SYSLOG_PID=25721 | |
27 | _PID=25721 | |
28 | _SOURCE_REALTIME_TIMESTAMP={source_realtime_ts} | |
29 | DATA={data} | |
30 | """ | |
31 | ||
00d5eaaf | 32 | m = 0x198603b12d7 |
d3b7fd54 ZJS |
33 | realtime_ts = 1404101101501873 |
34 | monotonic_ts = 1753961140951 | |
35 | source_realtime_ts = 1404101101483516 | |
36 | priority = 3 | |
37 | facility = 6 | |
38 | ||
39 | src = open('/dev/urandom', 'rb') | |
40 | ||
41 | bytes = 0 | |
2c1a55cf | 42 | counter = 0 |
d3b7fd54 ZJS |
43 | |
44 | for i in range(OPTIONS.n): | |
45 | message = repr(src.read(2000)) | |
2c1a55cf ZJS |
46 | if OPTIONS.data_type == 'random': |
47 | data = repr(src.read(OPTIONS.data_size)) | |
48 | else: | |
49 | # keep the pattern non-repeating so we get a different blob every time | |
50 | data = '{:0{}}'.format(counter, OPTIONS.data_size) | |
51 | counter += 1 | |
d3b7fd54 ZJS |
52 | |
53 | entry = template.format(m=m, | |
54 | realtime_ts=realtime_ts, | |
55 | monotonic_ts=monotonic_ts, | |
56 | source_realtime_ts=source_realtime_ts, | |
57 | priority=priority, | |
58 | facility=facility, | |
59 | message=message, | |
60 | data=data) | |
61 | m += 1 | |
62 | realtime_ts += 1 | |
63 | monotonic_ts += 1 | |
64 | source_realtime_ts += 1 | |
65 | ||
66 | bytes += len(entry) | |
67 | ||
68 | print(entry) | |
69 | ||
70 | if OPTIONS.dots: | |
71 | print('.', file=sys.stderr, end='', flush=True) | |
72 | ||
73 | if OPTIONS.dots: | |
00d5eaaf | 74 | print(file=sys.stderr) |
d3b7fd54 | 75 | print('Wrote {} bytes'.format(bytes), file=sys.stderr) |