]> Cypherpunks.ru repositories - nncp.git/blob - doc/cmd/nncp-reass.texi
7cae84b2fa9af9932ca84e94ac00c814629b1590
[nncp.git] / doc / cmd / nncp-reass.texi
1 @node nncp-reass
2 @section nncp-reass
3
4 @example
5 $ nncp-reass [options] [-dryrun] [-keep] [-dump] [-stdout] FILE.nncp.meta
6 $ nncp-reass [options] [-dryrun] [-keep] @{-all | -node NODE@}
7 @end example
8
9 Reassemble @ref{Chunked, chunked file} after @ref{nncp-toss, tossing}.
10
11 When called with @option{FILE} option, this command will reassemble only
12 it. When called with @option{-node} option, this command will try to
13 reassemble all @file{.nncp.meta} files found in @option{NODE}'s
14 @ref{CfgIncoming, incoming} directory. When called with @option{-all}
15 option, then cycle through all known nodes to do the same.
16
17 Reassembling process does the following:
18
19 @enumerate
20 @item Parses @ref{Chunked, @file{.nncp.meta}} file.
21 @item Checks existence and size of every @file{.nncp.chunkXXX}.
22 @item Verifies integrity of every chunk.
23 @item Concatenates all chunks, simultaneously removing them from filesystem.
24 @end enumerate
25
26 That process reads the whole data twice. Be sure to have free disk
27 space for at least one chunk. Decrypted chunk files as a rule are saved
28 in pseudo-random order, so removing them during reassembly process will
29 likely lead to filesystem fragmentation. Reassembly process on
30 filesystems with deduplication capability should be rather lightweight.
31
32 If @option{-dryrun} option is specified, then only existence and
33 integrity checking are performed.
34
35 If @option{-keep} option is specified, then no
36 @file{.nncp.meta}/@file{.nncp.chunkXXX} files are deleted during
37 reassembly process.
38
39 @option{-stdout} option outputs reassembled file to @code{stdout},
40 instead of saving to temporary file with renaming after. This could be
41 useful for reassembling on separate filesystem to lower fragmentation
42 effect, and/or separate storage device for higher performance.
43
44 @option{-dump} option prints meta-file contents in human-friendly form.
45 It is useful mainly for debugging purposes. For example:
46 @example
47 Original filename: testfile
48 File size: 3.8 MiB (3987795 bytes)
49 Chunk size: 1.0 MiB (1048576 bytes)
50 Number of chunks: 4
51 Checksums:
52     0: eac60d819edf40b8ecdacd0b9a5a8c62de2d15eef3c8ca719eafa0be9b894017
53     1: 013a07e659f2e353d0e4339c3375c96c7fffaa2fa00875635f440bbc4631052a
54     2: f4f883975a663f2252328707a30e71b2678f933b2f3103db8475b03293e4316e
55     3: 0e9e229501bf0ca42d4aa07393d19406d40b179f3922a3986ef12b41019b45a3
56 @end example
57
58 Do not forget about @ref{ChunkedZFS, possible} ZFS deduplication issues.