mirror of https://github.com/borgbackup/borg.git
commit
16e8213716
65
README.rst
65
README.rst
|
@ -1,6 +1,20 @@
|
|||
|screencast_basic|
|
||||
This is borg2!
|
||||
--------------
|
||||
|
||||
More screencasts: `installation`_, `advanced usage`_
|
||||
Please note that this is the README for borg2 / master branch.
|
||||
|
||||
borg2 is currently in beta testing.
|
||||
|
||||
For the stable version's docs, please see there:
|
||||
|
||||
https://borgbackup.readthedocs.io/en/stable/
|
||||
|
||||
TODO: the screencasts need a remake using borg2, see there:
|
||||
|
||||
https://github.com/borgbackup/borg/issues/6303
|
||||
|
||||
.. |screencast_basic|
|
||||
.. More screencasts: `installation`_, `advanced usage`_
|
||||
|
||||
What is BorgBackup?
|
||||
-------------------
|
||||
|
@ -56,8 +70,9 @@ Main features
|
|||
* quick detection of unmodified files
|
||||
|
||||
**Data encryption**
|
||||
All data can be protected using 256-bit AES encryption, data integrity and
|
||||
authenticity is verified using HMAC-SHA256. Data is encrypted clientside.
|
||||
All data can be protected client-side using 256-bit authenticated encryption
|
||||
(AES-OCB or chacha20-poly1305), ensuring data confidentiality, integrity and
|
||||
authenticity.
|
||||
|
||||
**Obfuscation**
|
||||
Optionally, borg can actively obfuscate e.g. the size of files / chunks to
|
||||
|
@ -86,7 +101,7 @@ Main features
|
|||
you can just run them on these platforms:
|
||||
|
||||
* Linux
|
||||
* Mac OS X
|
||||
* macOS
|
||||
* FreeBSD
|
||||
* OpenBSD and NetBSD (no xattrs/ACLs support or binaries yet)
|
||||
* Cygwin (experimental, no binaries yet)
|
||||
|
@ -100,35 +115,31 @@ Main features
|
|||
Easy to use
|
||||
~~~~~~~~~~~
|
||||
|
||||
Initialize a new backup repository (see ``borg init --help`` for encryption options)::
|
||||
For ease of use, set the BORG_REPO environment variable::
|
||||
|
||||
$ borg init -e repokey /path/to/repo
|
||||
$ export BORG_REPO=/path/to/repo
|
||||
|
||||
Create a backup archive::
|
||||
Create a new backup repository (see ``borg rcreate --help`` for encryption options)::
|
||||
|
||||
$ borg create /path/to/repo::Saturday1 ~/Documents
|
||||
$ borg rcreate -e repokey-aes-ocb
|
||||
|
||||
Create a new backup archive::
|
||||
|
||||
$ borg create Monday1 ~/Documents
|
||||
|
||||
Now doing another backup, just to show off the great deduplication::
|
||||
|
||||
$ borg create -v --stats /path/to/repo::Saturday2 ~/Documents
|
||||
-----------------------------------------------------------------------------
|
||||
Archive name: Saturday2
|
||||
Archive fingerprint: 622b7c53c...
|
||||
Time (start): Sat, 2016-02-27 14:48:13
|
||||
Time (end): Sat, 2016-02-27 14:48:14
|
||||
Duration: 0.88 seconds
|
||||
Number of files: 163
|
||||
-----------------------------------------------------------------------------
|
||||
Original size Compressed size Deduplicated size
|
||||
This archive: 6.85 MB 6.85 MB 30.79 kB <-- !
|
||||
All archives: 13.69 MB 13.71 MB 6.88 MB
|
||||
$ borg create -v --stats Monday2 ~/Documents
|
||||
Repository: /path/to/repo
|
||||
Archive name: Monday2
|
||||
Archive fingerprint: 7714aef97c1a24539cc3dc73f79b060f14af04e2541da33d54c7ee8e81a00089
|
||||
Time (start): Mon, 2022-10-03 19:57:35 +0200
|
||||
Time (end): Mon, 2022-10-03 19:57:35 +0200
|
||||
Duration: 0.01 seconds
|
||||
Number of files: 24
|
||||
Original size: 29.73 MB
|
||||
Deduplicated size: 520 B
|
||||
|
||||
Unique chunks Total chunks
|
||||
Chunk index: 167 330
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
|
||||
For a graphical frontend refer to our complementary project `BorgWeb <https://borgweb.readthedocs.io/>`_.
|
||||
|
||||
Helping, Donations and Bounties, becoming a Patron
|
||||
--------------------------------------------------
|
||||
|
|
|
@ -161,8 +161,8 @@ def install_pythons(boxname)
|
|||
return <<-EOF
|
||||
. ~/.bash_profile
|
||||
pyenv install 3.11.0rc2 # tests
|
||||
pyenv install 3.10.2 # tests
|
||||
pyenv install 3.9.14 # tests, binary build
|
||||
pyenv install 3.10.7 # tests, binary build
|
||||
pyenv install 3.9.1 # tests
|
||||
pyenv rehash
|
||||
EOF
|
||||
end
|
||||
|
@ -179,9 +179,9 @@ def build_pyenv_venv(boxname)
|
|||
return <<-EOF
|
||||
. ~/.bash_profile
|
||||
cd /vagrant/borg
|
||||
# use the latest 3.9 release
|
||||
pyenv global 3.9.14
|
||||
pyenv virtualenv 3.9.14 borg-env
|
||||
# use the latest 3.10 release
|
||||
pyenv global 3.10.7
|
||||
pyenv virtualenv 3.10.7 borg-env
|
||||
ln -s ~/.pyenv/versions/borg-env .
|
||||
EOF
|
||||
end
|
||||
|
@ -228,8 +228,8 @@ def run_tests(boxname, skip_env)
|
|||
. ../borg-env/bin/activate
|
||||
if which pyenv 2> /dev/null; then
|
||||
# for testing, use the earliest point releases of the supported python versions:
|
||||
pyenv global 3.9.14 3.10.2 3.11.0rc2
|
||||
pyenv local 3.9.14 3.10.2 3.11.0rc2
|
||||
pyenv global 3.9.1 3.10.7 3.11.0rc2
|
||||
pyenv local 3.9.1 3.10.7 3.11.0rc2
|
||||
fi
|
||||
# otherwise: just use the system python
|
||||
# some OSes can only run specific test envs, e.g. because they miss FUSE support:
|
||||
|
|
|
@ -200,12 +200,12 @@ backed up and that the ``prune`` command is keeping and deleting the correct bac
|
|||
# limit prune's operation to this machine's archives and not apply to
|
||||
# other machines' archives also:
|
||||
|
||||
borg prune \
|
||||
--list \
|
||||
--glob-archives '{hostname}-*' \
|
||||
--show-rc \
|
||||
--keep-daily 7 \
|
||||
--keep-weekly 4 \
|
||||
borg prune \
|
||||
--list \
|
||||
--match-archives 'sh:{hostname}-*' \
|
||||
--show-rc \
|
||||
--keep-daily 7 \
|
||||
--keep-weekly 4 \
|
||||
--keep-monthly 6
|
||||
|
||||
prune_exit=$?
|
||||
|
|
|
@ -39,6 +39,7 @@ Usage
|
|||
usage/rcreate
|
||||
usage/rlist
|
||||
usage/rinfo
|
||||
usage/rcompress
|
||||
usage/rdelete
|
||||
usage/serve
|
||||
usage/compact
|
||||
|
|
|
@ -989,7 +989,7 @@ This problem will go away as soon as the server has been upgraded to 1.0.7+.
|
|||
def list(self, limit=None, marker=None, mask=0, value=0):
|
||||
"""actual remoting is done via self.call in the @api decorator"""
|
||||
|
||||
@api(since=parse_version("2.0.0b2"))
|
||||
@api(since=parse_version("2.0.0b3"))
|
||||
def scan(self, limit=None, state=None):
|
||||
"""actual remoting is done via self.call in the @api decorator"""
|
||||
|
||||
|
|
Loading…
Reference in New Issue