2016-07-05 21:30:08 +00:00
.. IMPORTANT : this file is auto - generated from borg ' s built - in help , do not edit !
2015-11-13 15:42:16 +00:00
.. _borg_check :
borg check
----------
2017-06-06 22:44:53 +00:00
.. code - block :: none
2015-11-13 15:42:16 +00:00
2022-06-23 23:19:19 +00:00
borg [ common options ] check [ options ]
2016-04-09 23:28:18 +00:00
2017-06-20 13:22:24 +00:00
.. only :: html
.. class :: borg - options - table
2017-07-23 15:12:01 +00:00
+-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
| ** optional arguments ** |
+-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
| | `` -- repository - only `` | only perform repository checks |
+-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
| | `` -- archives - only `` | only perform archives checks |
+-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
| | `` -- verify - data `` | perform cryptographic archive data integrity verification ( conflicts with `` -- repository - only `` ) |
+-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
| | `` -- repair `` | attempt to repair any inconsistencies found |
+-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
| | `` -- save - space `` | work slower , but using less space |
+-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
2019-03-10 23:11:16 +00:00
| | `` -- max - duration SECONDS `` | do only a partial repo check for max . SECONDS seconds ( Default : unlimited ) |
+-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
2017-07-23 15:12:01 +00:00
| .. class :: borg - common - opt - ref |
| |
| : ref : `common_options` |
+-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
| ** Archive filters ** — Archive filters can be applied to repository targets . |
+-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
| | `` - P PREFIX `` , `` -- prefix PREFIX `` | only consider archive names starting with this prefix . |
+-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
| | `` - a GLOB `` , `` -- glob - archives GLOB `` | only consider archive names matching the glob . sh : rules apply , see " borg help patterns " . `` -- prefix `` and `` -- glob - archives `` are mutually exclusive . |
+-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
| | `` -- sort - by KEYS `` | Comma - separated list of sorting keys ; valid keys are : timestamp , name , id ; default is : timestamp |
+-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
| | `` -- first N `` | consider first N archives after other filters were applied |
+-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
| | `` -- last N `` | consider last N archives after other filters were applied |
+-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
2017-06-20 13:22:24 +00:00
.. raw :: html
< script type = 'text/javascript' >
2017-06-20 13:48:30 +00:00
$ ( document ) . ready ( function () {
2017-06-20 13:22:24 +00:00
$ ( '.borg-options-table colgroup' ) . remove ();
})
</ script >
.. only :: latex
optional arguments
-- repository - only only perform repository checks
-- archives - only only perform archives checks
-- verify - data perform cryptographic archive data integrity verification ( conflicts with `` -- repository - only `` )
-- repair attempt to repair any inconsistencies found
-- save - space work slower , but using less space
2019-03-10 23:11:16 +00:00
-- max - duration SECONDS do only a partial repo check for max . SECONDS seconds ( Default : unlimited )
2017-06-20 13:22:24 +00:00
: ref : `common_options`
|
2017-07-23 15:12:01 +00:00
Archive filters
- P PREFIX , -- prefix PREFIX only consider archive names starting with this prefix .
- a GLOB , -- glob - archives GLOB only consider archive names matching the glob . sh : rules apply , see " borg help patterns " . `` -- prefix `` and `` -- glob - archives `` are mutually exclusive .
-- sort - by KEYS Comma - separated list of sorting keys ; valid keys are : timestamp , name , id ; default is : timestamp
-- first N consider first N archives after other filters were applied
-- last N consider last N archives after other filters were applied
2017-06-20 09:49:26 +00:00
2016-11-28 01:25:56 +00:00
2015-11-13 15:42:16 +00:00
Description
~~~~~~~~~~~
The check command verifies the consistency of a repository and the corresponding archives .
2020-10-04 18:32:38 +00:00
check -- repair is a potentially dangerous function and might lead to data loss
( for kinds of corruption it is not capable of dealing with ) . BE VERY CAREFUL !
2021-06-17 05:24:32 +00:00
Pursuant to the previous warning it is also highly recommended to test the
reliability of the hardware running this software with stress testing software
such as memory testers . Unreliable hardware can also lead to data loss especially
when this command is run in repair mode .
2015-11-13 15:42:16 +00:00
First , the underlying repository data files are checked :
2020-04-12 17:51:49 +00:00
- For all segments , the segment magic header is checked .
- For all objects stored in the segments , all metadata ( e . g . CRC and size ) and
2015-11-13 15:42:16 +00:00
all data is read . The read data is checked by size and CRC . Bit rot and other
types of accidental damage can be detected this way .
2020-04-12 17:51:49 +00:00
- In repair mode , if an integrity error is detected in a segment , try to recover
as many objects from the segment as possible .
- In repair mode , make sure that the index is consistent with the data stored in
the segments .
- If checking a remote repo via `` ssh : `` , the repo check is executed on the server
without causing significant network traffic .
2017-06-17 10:28:42 +00:00
- The repository check can be skipped using the `` -- archives - only `` option .
2020-04-12 17:51:49 +00:00
- A repository check can be time consuming . Partial checks are possible with the
`` -- max - duration `` option .
2015-11-13 15:42:16 +00:00
Second , the consistency and correctness of the archive metadata is verified :
- Is the repo manifest present ? If not , it is rebuilt from archive metadata
chunks ( this requires reading and decrypting of all metadata and data ) .
2020-04-12 17:51:49 +00:00
- Check if archive metadata chunk is present ; if not , remove archive from manifest .
2015-11-13 15:42:16 +00:00
- For all files ( items ) in the archive , for all chunks referenced by these
2020-04-12 17:51:49 +00:00
files , check if chunk is present . In repair mode , if a chunk is not present ,
replace it with a same - size replacement chunk of zeroes . If a previously lost
chunk reappears ( e . g . via a later backup ), in repair mode the all - zero replacement
chunk will be replaced by the correct chunk . This requires reading of archive and
file metadata , but not data .
- In repair mode , when all the archives were checked , orphaned chunks are deleted
from the repo . One cause of orphaned chunks are input file related errors ( like
read errors ) in the archive creation process .
2021-06-18 17:58:44 +00:00
- In verify - data mode , a complete cryptographic verification of the archive data
integrity is performed . This conflicts with `` -- repository - only `` as this mode
only makes sense if the archive checks are enabled . The full details of this mode
are documented below .
2020-04-12 17:51:49 +00:00
- If checking a remote repo via `` ssh : `` , the archive check is executed on the
client machine because it requires decryption , and this is always done client - side
as key access is needed .
- The archive checks can be time consuming ; they can be skipped using the
2017-06-17 10:28:42 +00:00
`` -- repository - only `` option .
2016-07-05 23:33:53 +00:00
2020-04-12 17:51:49 +00:00
The `` -- max - duration `` option can be used to split a long - running repository check
into multiple partial checks . After the given number of seconds the check is
interrupted . The next partial check will continue where the previous one stopped ,
2022-04-14 19:09:23 +00:00
until the complete repository has been checked . Example : Assuming a complete check took 7
2020-04-12 17:51:49 +00:00
hours , then running a daily check with -- max - duration = 3600 ( 1 hour ) resulted in one
2022-04-14 19:09:23 +00:00
completed check per week .
Attention : A partial -- repository - only check can only do way less checking than a full
-- repository - only check : only the non - cryptographic checksum checks on segment file
entries are done , while a full -- repository - only check would also do a repo index check .
A partial check cannot be combined with the `` -- repair `` option . Partial checks
may therefore be useful only with very large repositories where a full check would take
too long .
Doing a full repository check aborts a partial check ; the next partial check will restart
from the beginning .
2019-04-22 16:00:28 +00:00
2017-06-17 10:28:42 +00:00
The `` -- verify - data `` option will perform a full integrity verification ( as opposed to
2016-07-05 23:33:53 +00:00
checking the CRC32 of the segment ) of data , which means reading the data from the
repository , decrypting and decompressing it . This is a cryptographic verification ,
which will detect ( accidental ) corruption . For encrypted repositories it is
2020-04-12 17:51:49 +00:00
tamper - resistant as well , unless the attacker has access to the keys . It is also very
slow .