File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / rsync / rsyncdb.1.html
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Wed Mar 17 00:32:36 2021 UTC (3 years, 3 months ago) by misho
Branches: rsync, MAIN
CVS tags: v3_2_3, HEAD
rsync 3.2.3

    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 -&#8288; 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 &quot;db&quot; 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 &amp; /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* &gt;/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: &quot;&quot;)
   92: --check, -c       Check checksums (by reading the files) and fix any
   93:                   issues.  Makes --output default to &quot;dni&quot;.
   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 -&#8288;-&#8288;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 &quot;-&#8288;o s&quot; 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 &quot;dn&quot; or (with <code>--check</code>) &quot;dni&quot;.</p>
  140: <p>The following letters are accepted in the string:</p>
  141: <ul>
  142: <li><code>d</code> outputs &quot;... dir_name ...&quot; lines for each directory in our scan.  if
  143: &quot;d&quot; 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 &quot;u&quot; is given.  The &quot;n&quot; option is implied
  146: by every other output option letter except &quot;d&quot;.</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 &quot;dni&quot;.</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 -&#8288;-&#8288;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 &quot;disk&quot; 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: &quot;disk&quot; table.</p>
  207: <p>The helper script &quot;rsyncdb-mountinfo&quot; 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 &quot;.rsyncdb_mount_uniq&quot; 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>