1SUMMAIN(1) General Commands Manual SUMMAIN(1)
2
3
4
6 summain - gather file checksums and metadata
7
9 summain [-cCHECKSUM] [--checksum=CHECKSUM] [--config=FILE]
10 [--dump-config] [--dump-setting-names] [--generate-manpage=TEMPLATE]
11 [-h] [--help] [--help-all] [--list-config-files] [--version]
12 [--no-default-configs] [--dump-memory-profile=METHOD] [--exclude=FIELD]
13 [--log=FILE] [--log-keep=N] [--log-level=LEVEL] [--log-max=SIZE]
14 [--log-mode=MODE] [-m] [--mangle-paths] [--no-mangle-paths]
15 [--memory-dump-interval=SECONDS] [--output=FILE] [-fOUTPUT-FORMAT]
16 [--output-format=OUTPUT-FORMAT] [-r] [--relative-paths]
17 [--no-relative-paths] [--secret=SECRET] [FILE]...
18
20 summain gathers metadata about files, and computes their checksums. It
21 is intended to create a manifest of the files. The manifest can be
22 used to see if something has changed: a new manifest can be created and
23 compared with the old one with diff(1).
24
25 The manifest looks like this:
26
27 Name: foo/bar/foobar
28 SHA1: 1234123413241324
29 Mtime: 2010-01-01 02:08:00.127651 +0000
30 Mode: 1755
31
32 The filename is URL-encoded to ensure it is purely ASCII. Mode is in
33 octal.
34
35 Only some inode fields are included. It does not make sense to com‐
36 pare, for example, the access time, so that is not included.
37
38 Time stamps are given using microsecond precision, for the benefit of
39 those filesystems that can support precise timestamps. (Should be
40 nanosecond, but Python return timestamps as floating point, and
41 nanosecond precision is too much for the floating point type.)
42
43 The inode and device number fields will not be reported accurately.
44 Instead, they are normalized so that manifests are useful after the
45 files have been restored from backups. Accurate numbers would mean ev‐
46 erything seems to have changed. Normalized means that there will be no
47 differences. The numbers are reported so that hard links can be
48 checked.
49
50 Directories named on the command line will be recursed automatically.
51
53 -c, --checksum=CHECKSUM
54 which checksums to compute: MD5, SHA1, SHA224, SHA256, SHA384,
55 SHA512; use once per checksum type (default is SHA1)
56
57 --exclude=FIELD
58 do not output or compute FIELD
59
60 --generate-manpage=TEMPLATE
61 fill in manual page TEMPLATE
62
63 -h, --help
64 show this help message and exit
65
66 -m, --mangle-paths
67 mangle (obfuscate) paths
68
69 --no-mangle-paths
70 opposite of --mangle-paths
71
72 --output=FILE
73 write output to FILE, instead of standard output
74
75 -f, --output-format=OUTPUT-FORMAT
76 choose output format (rfc822, csv, json)
77
78 -r, --relative-paths
79 print paths relative to arguments
80
81 --no-relative-paths
82 opposite of --relative-paths
83
84 --secret=SECRET
85 use SECRET to make mangled paths unguessable
86
87 --version
88 show program's version number and exit
89
90 Configuration files and settings
91 --config=FILE
92 add FILE to config files
93
94 --dump-config
95 write out the entire current configuration
96
97 --dump-setting-names
98 write out all names of settings and quit
99
100 --help-all
101 show all options
102
103 --list-config-files
104 list all possible config files
105
106 --no-default-configs
107 clear list of configuration files to read
108
109 Logging
110 --log=FILE
111 write log entries to FILE (default is to not write log files at
112 all); use "syslog" to log to system log, "stderr" to log to the
113 standard error output, or "none" to disable logging
114
115 --log-keep=N
116 keep last N logs (10)
117
118 --log-level=LEVEL
119 log at LEVEL, one of debug, info, warning, error, critical, fa‐
120 tal (default: debug)
121
122 --log-max=SIZE
123 rotate logs larger than SIZE, zero for never (default: 0)
124
125 --log-mode=MODE
126 set permissions of new log files to MODE (octal; default 0600)
127
128 Peformance
129 --dump-memory-profile=METHOD
130 make memory profiling dumps using METHOD, which is one of: none,
131 simple, or meliae (default: simple)
132
133 --memory-dump-interval=SECONDS
134 make memory profiling dumps at least SECONDS apart
135
137 To make a complete manifest of a directory tree so that you can later
138 verify that nothing at all has changed:
139
140 summain foo > foo.summain
141
142 To verify that nothing has changed:
143
144 summain foo > foo.summain-2
145 diff -u foo.summain foo.summain-2
146
147
148
149 SUMMAIN(1)