Annotation of embedaddon/rsync/rsyncdb.1.html, revision 1.1.1.1
1.1 misho 1: <html><head>
2: <title>rsyncdb(1) man page</title>
3: <link href="https://fonts.googleapis.com/css2?family=Roboto&family=Roboto+Mono&display=swap" rel="stylesheet">
4: <style>
5: body {
6: max-width: 50em;
7: margin: auto;
8: }
9: body, b, strong, u {
10: font-family: 'Roboto', sans-serif;
11: }
12: code {
13: font-family: 'Roboto Mono', monospace;
14: font-weight: bold;
15: white-space: pre;
16: }
17: pre code {
18: display: block;
19: font-weight: normal;
20: }
21: blockquote pre code {
22: background: #f1f1f1;
23: }
24: dd p:first-of-type {
25: margin-block-start: 0em;
26: }
27: </style>
28: </head><body>
29: <h1>NAME</h1>
30: <p>rsyncdb -⁠ Maintain an rsync checksum DB</p>
31: <h1>SYNOPSIS</h1>
32: <pre><code>rsyncdb --db=CONFIG [OPTION...] [DIR...]
33: </code></pre>
34: <h1>DESCRIPTION</h1>
35: <p>Rsyncdb can maintain a checksum-caching DB that rsync can use to make its
36: <code>--checksum</code> option more optimal. You must specify a config file via
37: the <code>--db=CONFIG_FILE</code> option in order for rsyncdb to know what DB to
38: manipulate. See the rsync manpage's <code>--db</code> option for full details on
39: the file's format.</p>
40: <p>You can specify one or more directory args for rsyncdb to scan. If no
41: DIR args are specified, the current directory is assumed to be the spot
42: to start scanning.</p>
43: <p>Note that the rsyncdb program is usually just a symlink to the rsync program.
44: You can force rsync to behave as rsyncdb either by having a symlink (or
45: hardlink) name that ends with "db" or by <code>starting</code> the rsync args with
46: <code>--db-only=CONFIG</code> (and that option works just like <code>--db=CONFIG</code> to
47: a program named rsyncdb).</p>
48: <h1>EXAMPLES</h1>
49: <p>The following command will update checksum information in the database
50: described in the /etc/db.conf file:</p>
51: <blockquote>
52: <pre><code>rsyncdb --db=/etc/db.conf -o n --clean /dir1 /dir2
53: </code></pre>
54: </blockquote>
55: <p>It scans 2 directory hierarchies (/dir1 & /dir2) and cleans out any
56: checksums whose inodes are no longer found in those directories (so that
57: directory args are presumed to be complete for this host's DB contents).</p>
58: <p>The following command will scan all the files in the /dir2 directory (without
59: recursive scanning, due to the <code>--no-r</code> option) and check them against
60: the DB:</p>
61: <blockquote>
62: <pre><code>rsyncdb --db=/etc/db.conf --check --no-r /dir2
63: </code></pre>
64: </blockquote>
65: <p>Any errors found are output as well as being fixed in the DB. (See
66: <code>--no-update</code> for how to check without updating.)</p>
67: <p>The following command will output MD5 sums for all the files found in the
68: directories mentioned, even if they are unchanged (due to the
69: <code>--output=us</code> option):</p>
70: <blockquote>
71: <pre><code>rsyncdb --db=/etc/db.conf -rous /dir* >/tmp/md5sums.txt
72: </code></pre>
73: </blockquote>
74: <p>This is just like running md5sum, only faster. Unlike md5sum, you can't
75: specify a single file, so use <code>--no-r</code> and grep the output if you just
76: want to see a single file's value.</p>
77: <p>The following command initializes a new DB, and is required for any new DB:</p>
78: <blockquote>
79: <pre><code>rsyncdb --db=/etc/db.conf --init --mounts
80: </code></pre>
81: </blockquote>
82: <p>The <code>--init</code> option should only be used once (unless you want to
83: destroy existing data). The <code>--mounts</code> option may need to be used
84: periodically, and makes use of a helper script (see below).</p>
85: <h1>OPTIONS SUMMARY</h1>
86: <p>Rsyncdb accepts the following options:</p>
87: <pre><code>--db=CONFIG Specify the CONFIG file to read for the DB info
88: --db-lax Ignore ctime changes (use with CAUTION)
89: --recursive, -r Scan files in subdirs (the default w/o --no-recursive)
90: --sums=SUMS, -s List which checksums to update (default: 4,5)
91: --output=STR, -o One or more letters of what to output (default: "")
92: --check, -c Check checksums (by reading the files) and fix any
93: issues. Makes --output default to "dni".
94: --clean Note all inodes in the DIRS and remove DB extras
95: --no-update, -N Avoids updating/adding info w/--check and/or --clean
96: --init Initialize a DB by (re-)creating its tables
97: --mounts Scan for mounted filesystems and update the DB
98: --quiet, -q Disable the default non-error output
99: --help, -h Display this help message
100: </code></pre>
101: <h1>OPTIONS</h1>
102: <p>Rsyncdb accepts both long (double-dash + word) and short (single-dash + letter)
103: options. The full list of the available options are described below. If an
104: option can be specified in more than one way, the choices are comma-separated.
105: Some options only have a long variant, not a short. If the option takes a
106: parameter, the parameter is only listed after the long variant, even though it
107: must also be specified for the short. When specifying a parameter, you can
108: either use the form -⁠-⁠option=param or replace the '=' with whitespace. The
109: parameter may need to be quoted in some manner for it to survive the shell's
110: command-line parsing.</p>
111: <dl>
112:
113: <dt><code>--db=CONFIG_FILE</code></dt><dd>
114: <p>This tells rsyncdb what DB-config file to read for the DB setup. This is
115: the same as the option in rsync, so refer to that manpage for full details.</p>
116: </dd>
117:
118: <dt><code>--db-lax</code></dt><dd>
119: <p>This option works just like it does in rsync, so refer to that manpage for
120: full details.</p>
121: </dd>
122:
123: <dt><code>--no-recursive, --no-r</code></dt><dd>
124: <p>This disables the default recursive directory scan that is performed on the
125: listed directory args. The options <code>--recursive</code> and <code>-r</code> are also
126: accepted, if someone wants to override an earlier <code>--no-r</code> override.</p>
127: </dd>
128:
129: <dt><code>--sums=SUMS, -s</code></dt><dd>
130: <p>Only output/update the listed checksum types. By default we deal with just
131: the newer md5 checksums (i.e. <code>--sums=5</code>).</p>
132: <p>Note that this option does NOT affect the order that checksums are output
133: if "-⁠o s" is enabled, so <code>-s5,4</code> is the same as <code>-s4,5</code>.</p>
134: </dd>
135:
136: <dt><code>--output=STR, -o</code></dt><dd>
137: <p>The output option lets you specify one or more letters indicating what
138: information should be output. If <code>--output</code> is not specified, the default
139: is either "dn" or (with <code>--check</code>) "dni".</p>
140: <p>The following letters are accepted in the string:</p>
141: <ul>
142: <li><code>d</code> outputs "... dir_name ..." lines for each directory in our scan. if
143: "d" is omitted, then this progress indictor is not output.</li>
144: <li><code>n</code> includes the file's name in the per-file output. These lines are only
145: output for changed files unless "u" is given. The "n" option is implied
146: by every other output option letter except "d".</li>
147: <li><code>s</code> includes the checksum info in the per-file output.</li>
148: <li><code>c</code> is a synonym for 's'.</li>
149: <li><code>i</code> includes itemized change info in the per-file output.
150: <ul>
151: <li><code>!i</code> indicates that the time and/or size is wrong.</li>
152: <li><code>+4</code> indicates the MD4 sum is missing.</li>
153: <li><code>+5</code> indicates the MD5 sum is missing.</li>
154: <li><code>!4</code> indicates the MD4 sum is wrong.</li>
155: <li><code>!5</code> indicates the MD5 sum is wrong.</li>
156: <li><code>?4</code> indicates an unknown MD4 difference. This can happen if we didn't
157: need to read the file; i.e. if the time/size is wrong and no sum info
158: was requested.</li>
159: <li><code>?5</code> indicates an unknown MD5 difference.</li>
160: </ul>
161: </li>
162: <li><code>u</code> includes unchanged files in the per-file output lines.</li>
163: </ul>
164: </dd>
165:
166: <dt><code>--check, -c</code></dt><dd>
167: <p>Check the checksums (forcing the reading of all the files) and fix any
168: issues that are found. Makes <code>--output</code> default to "dni".</p>
169: </dd>
170:
171: <dt><code>--clean</code></dt><dd>
172: <p>Makes a temp-DB of all the inodes that we find in all the listed
173: directories and removes any extraneous checksums from the DB. You will
174: need to specify all the mounted directories that are present (and listed as
175: mounted) in the DB on this host or else the checksums from the unvisited
176: directories will be discarded from the DB. If you want to just -⁠-⁠clean
177: without adding or updating the info of new or changed files, specify
178: <code>--no-update</code> as well.</p>
179: </dd>
180:
181: <dt><code>--no-update, -N</code></dt><dd>
182: <p>Avoids updating/adding info with <code>--check</code> and/or <code>--clean</code>.</p>
183: </dd>
184:
185: <dt><code>--quiet, -q</code></dt><dd>
186: <p>Disable the default (non-error) output settings. This turns off the
187: messages that <code>--init</code>, <code>--mount</code>, and <code>--clean</code> output, and makes the
188: default for <code>--output</code> be nothing (though an explicit <code>--output</code> option is
189: not affected).</p>
190: </dd>
191:
192: <dt><code>--init</code></dt><dd>
193: <p>Create the tables in the DB. If it is used on an existing DB, all the
194: existing tables are dropped and re-created.</p>
195: </dd>
196: </dl>
197: <p>This option cannot be combined with the updating or reporting of checksum
198: information, but may be combined with <code>--mounts</code>.</p>
199: <dl>
200:
201: <dt><code>--mounts</code></dt><dd>
202: <p>Populate the "disk" DB with the available device numbers and change any
203: mounted/unmount information for devices. This should be run every time a
204: mount-change happens that may affect a directory hierarchy in the DB.
205: Rsyncdb will not save any checksums for a device that is not listed in the
206: "disk" table.</p>
207: <p>The helper script "rsyncdb-mountinfo" is used as the source of the mount
208: information on the host, which it derives from various system files and
209: UUID directories (if available). That script supports the use of an
210: override file named ".rsyncdb_mount_uniq" in the root of the mount as one
211: way to manually assign unique values to a shared (mountable) device's
212: various disks.</p>
213: <p>Some advanced users may want to maintain the disk table themselves in order
214: to support mounting a drive in different (or multiple) locations, etc.</p>
215: <p>Specifying the <code>--mounts</code> option cannot be combined with updating or
216: reporting of checksum information, but may be combined with <code>--init</code>.</p>
217: </dd>
218:
219: <dt><code>--help, -h</code></dt><dd>
220: <p>Display a summary of the options.</p>
221: </dd>
222: </dl>
223: <h1>SEE ALSO</h1>
224: <p><strong>rsync</strong>(1)</p>
225: <h1>AUTHOR</h1>
226: <p>Rsyncdb was written by Wayne Davison.</p>
227: <div style="float: right"><p><i>06 Aug 2020</i></p></div>
228: </body></html>
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>