Copyright (C) 2008-2024 Oprea Dan, Bart de Koning, Richard Bailey,
Germar Reitze, Taylor Raack
Copyright (C) 2022 Christian Buhtz, Michael Büker, Jürgen Altfeld
Back In Time is an easy-to-use tool to backup files and folders.
It runs on GNU Linux (not on Windows or OS X/macOS) and provides a command line tool backintime
and a
GUI backintime-qt
both written in Python3. It uses
rsync
to take manual or scheduled snapshots and
stores them locally or remotely through SSH. Each snapshot is in its own folder
with copies of the original files, but unchanged files are hard-linked between
snapshots to save storage space.
It was inspired by FlyBack.
The project is in active developement since the new team joined in
summer 2022. Development is done in spare time so things need to be
prioritized. Stick with us, we all
Current focus is on fixing major issues instead of implementing new features. Read the strategy outline for details. Please see CONTRIBUTING if you are interested in the development and have a look on open issues especially those labeled as good first issues and help wanted.
The current team started in summer of 2022 (with #1232) and constitutes the project's 3rd generation of maintainers. Consisting of three members with diverse backgrounds (@aryoda, @buhtz, @emtiu), the team benefits from the assistance of the former maintainer, @Germar, who contributes from behind the scenes.
All team members are engaged in every aspect of the project, including code analysis, documentation, solving issues, and the implementation of new features. This work is carried out voluntarily during their limited spare time.
- Documentation, FAQs, Support
- Installation
- Known Problems and Workarounds
- Contributing and other ways to support the project
- FAQ - Frequently Asked Questions
- End user documentation (not totally up-to-date)
- Mailing list bit-dev for every topic, question and idea about Back In Time. Despite its name it is not restricted to development topics only.
- Use Issues to ask questions and report bugs.
- Source code documentation for developers
Back In Time is included in many GNU/Linux distributions.
Use their repositories to install it. If you want to contribute or using the latest development version
of Back In Time please see section Build & Install in CONTRIBUTING.md
.
Also the dependencies are described there.
Besides the repositories of the official GNU/Linux distributions, there are other alternative installation options provided and maintained by third parties.
- @Germar's Personal Package Archive (PPA) offering
ppa:bit-team/stable
as stable andppa:bit-team/testing
as testing PPA. - @jean-christophe-manciot's PPA distributing Back In Time for the latest stable Ubuntu release. See PPA requirements and install instructions.
- The Arch User Repository (AUR) does offer some packages.
In the latest stable release:
- File permissions handling and therefore possible non-differential backups
qt5_probing.py
may hang with high CPU usage when running BiT asroot
viacron
In older releases:
- RTE "module 'qttools' has no attribute 'initate_translator'" with encFS when prompting the user for a password (#1553)
- Tray icon or other icons not shown correctly
- Non-working password safe and BiT forgets passwords (keyring backend issues)
- Incompatibility with rsync >= 3.2.4
- Python 3.10 compatibility and Ubuntu version
More problems described in this FAQ section.
All releases can be found in the list of releases.
In version 1.2.0, the handling of file permissions changed.
In versions <= 1.1.24 (until 2017) all file permissions were set to -rw-r--r--
in the backup target.
In versions >= 1.2.0 (since 2019) rsync
is executed with --perms
option which tells rsync
to
preserve the source file permission.
Therefore backups can be larger and slower, especially the first backup after upgrading to a version >= 1.2.0.
If you don't like the new behavior, you can use Expert Options -> Paste additional options to rsync
to add --no-perms --no-group --no-owner
to it.
Note that the exact file permissions can still be found in fileinfo.bz2
and are also considered when restoring
files.
See the related issue #1592.
The only reliable work-around is to delete (or move into another folder)
the file /usr/share/backintime/common/qt5_probing.py
:
mv /usr/share/backintime/common/qt5_probing.py /usr/share/backintime/
Renaming does not work!
Status: Fixed in v1.4.0
Missing installations of Qt-supported themes and icons can cause this effect. Back In Time may activate the wrong theme in this case leading to some missing icons. A fix for the next release is in preparation.
As clean solution, please check your Linux settings (Appearance, Styles, Icons) and install all themes and icons packages for your preferred style via your package manager.
Status: Fixed in v1.3.3 (mostly) and v1.4.0
Back in Time does only support selected "known-good" backends
to set and query passwords from a user-session password safe by
using the keyring
library.
Enabling a supported keyring requires manual configuration of a configuration file until there is e.g. a settings GUI for this.
Symptoms are DEBUG log output (with the command line argument --debug
) of keyring problems can be recognized by output like:
DEBUG: [common/tools.py:829 keyringSupported] No appropriate keyring found. 'keyring.backends...' can't be used with BackInTime
DEBUG: [common/tools.py:829 keyringSupported] No appropriate keyring found. 'keyring.backends.chainer' can't be used with BackInTime
To diagnose and solve this follow these steps in a terminal:
# Show default backend
python3 -c "import keyring.util.platform_; print(keyring.get_keyring().__module__)"
# List available backends:
keyring --list-backends
# Find out the config file folder:
python3 -c "import keyring.util.platform_; print(keyring.util.platform_.config_root())"
# Create a config file named "keyringrc.cfg" in this folder with one of the available backends (listed above)
[backend]
default-keyring=keyring.backends.kwallet.DBusKeyring
See also issue #1321
Status: Fixed in v1.3.3
The release (1.3.2
) and earlier versions of Back In Time are incompatible
with rsync >= 3.2.4
(#1247).
If you use rsync >= 3.2.4
and backintime <= 1.3.2
there is a
workaround. Add --old-args
in
Expert Options / Additional options to rsync.
Note that some GNU/Linux distributions (e.g. Manjaro) using a workaround with
environment variable RSYNC_OLD_ARGS
in their distro-specific packages for
Back In Time. In that case you may not see any problems.
Back In Time versions older than 1.3.2 do not start with Python >= 3.10. Ubuntu 22.04 LTS ships with Python 3.10 and backintime 1.2.1, but has applied a patch to make it work. If you want to update Back In Time, you may use one of the alternative options for installation.
See CONTRIBUTING file for an overview about the projects workflow and strategy.
May 2024