emersion / bups Goto Github PK
View Code? Open in Web Editor NEWSimple GUI for Bup, a very efficient backup system.
License: MIT License
Simple GUI for Bup, a very efficient backup system.
License: MIT License
It seems something has gone wrong in the building of the latest debian package:
bash: /usr/bin/bups: /home/travis/virtualenv/python2.7_with_system_site_packages/bin/python: bad interpreter: No such file or directory
Looking at /usr/bin/bups
the shebang is
#!/home/travis/virtualenv/python2.7_with_system_site_packages/bin/python
Ubuntu 16.04
I have the following ~/.config/bups/config.json:
{
"dirs": [
{
"exclude": [
"/home/matthias/LM17_home",
"/home/matthias/Ubuntu12_home",
"/home/matthias/Dokumente",
"/home/matthias/Daten",
"/home/matthias/.cache",
"/home/matthias/.gvfs",
"/home/matthias/.dbus"
],
"path": "/home/matthias",
"onefilesystem": false,
"name": "home-matthias",
"excluderx": []
}
],
"mount": {
"path": "/media/matthias/BUP_4TB/backups",
"type": "",
"encrypt": false,
"target": "",
"options": ""
}
}
Starting the backup with bups I get the error
Traceback (most recent call last):
File "/usr/lib/bup/cmd/bup-save", line 241, in
File "/usr/lib/bup/bup/index.py", line 461, in filter
File "/usr/lib/bup/bup/index.py", line 431, in iter
File "/usr/lib/bup/bup/index.py", line 370, in iter
File "/usr/lib/bup/bup/index.py", line 370, in iter
File "/usr/lib/bup/bup/index.py", line 369, in iter
File "/usr/lib/bup/cmd/bup-save", line 228, in wantrecurse_pre
File "/usr/lib/bup/cmd/bup-save", line 225, in already_saved
File "/usr/lib/bup/bup/git.py", line 676, in exists
File "/usr/lib/bup/bup/git.py", line 669, in _require_objcache
File "/usr/lib/bup/bup/git.py", line 579, in _make_objcache
File "/usr/lib/bup/bup/git.py", line 425, in init
File "/usr/lib/bup/bup/git.py", line 523, in refresh
File "/usr/lib/bup/bup/git.py", line 552, in open_idx
File "/usr/lib/bup/bup/git.py", line 384, in init
File "/usr/lib/bup/bup/helpers.py", line 762, in mmap_read
File "/usr/lib/bup/bup/helpers.py", line 752, in _mmap_do
mmap.error: [Errno 24] Too many open files
Also, I get the error
/home/matthias/.gvfs: [Errno 13] Permission denied: '.gvfs'
even though I tried to exclude the path "/home/matthias/.gvfs". Is there something wrong with my exclude syntax?
I have installed the latest bups (0.8.1) on Linux Mint 19.1. Before, I have worked for years with bups on Linux Mint 17.3 without any problems. However, I use the exclude option for the first time in Linux Mint 19.
Thank you for clarification.
In bup the "-n" option can be used when saving a backup to name the output.
When indexing with bup one can use "--exclude=" to exclude the specified directory from being indexed, moreover one can use "--exclude-rx " to not index anything that maches this pattern. This can be very useful when backup up everything under /home/ but one wants to exclude files and folders with a dot in front of their name.
Dir names cannot contain non-ASCII chars
I setup bups on linux ubuntu, and it was working great.
Then I switched to linux mint and when I restarted the backup I obtain this error
Backup started...
Mounting filesystem...
Initializing bup...
Traceback (most recent call last):
File "/additional/sources/bups/bin/../bups/gtk.py", line 165, in do_backup
return manager.backup(callbacks)
File "/additional/sources/bups/bin/../bups/manager.py", line 139, in backup
"onstatus": lambda line: callbacks["onstatus"](line, ctx)
File "/additional/sources/bups/bin/../bups/worker.py", line 55, in init
return self.run(['init'], callbacks)
File "/additional/sources/bups/bin/../bups/worker.py", line 112, in run
proc = Popen(args, env=env, stdout=None, stderr=PIPE, universal_newlines=True)
File "/usr/lib/python2.7/subprocess.py", line 711, in __init__
errread, errwrite)
File "/usr/lib/python2.7/subprocess.py", line 1343, in _execute_child
raise child_exception
OSError: [Errno 2] File o directory non esistente
I have no idea what can be changed.
I'm currently using both bups and bup not from the repositories but from git.
Can you help me solving the problem?
Thank you for your great job!
Allow users to disable filesystem mounting/select other filesystem types
When making a backup with "Encrypt filesystem" checked, there is apparently no way to set a password or encryption key. Yet, the backup completes fine and can be mounted (again, with no password).
Is something not implemented or is it just encrypting with an empty key?
I found two problems:
1- in manage.py, line 246, I think you should return if sudo_worker is None. Otherwise, the process captures the log instead of the json response from sudo_worker.py
2- if you mount the cifs using root, only root can write to it. You need to add uid= and gid= options to make it writable from the user.
With those two changes, I finally was able to perform the backup
trying to do systemctl start bups.timer
kept failing. Turns out, the bups.service can't start because ExecStart was being ignored. I think it was getting ignored because of this line:
[/etc/systemd/system/bups.service:6] Executable path is not absolute, ignoring: python2 /usr/lib/python2.7/site-packages/bups/scheduler_worker.py /home/jeremy/.config/bups/config.json > /usr/lib/python2.7/site-packages/bups/scheduler-log.log 2>&1
bups.service: Service lacks both ExecStart= and ExecStop= setting. Refusing.
I changed python2 to be /sbin/python2 and it seems to be working for me.
To change python executable
After installing the .deb
on a fresh Ubuntu 16.04 installation, bups doesn't run because python-gobject
isn't installed. sudo apt install python-gobject
fixes the issue.
I think you need to add python-gobject
to the dependencies of the .deb
package.
Did you consider using "user" systemd service/timer instead of system wide ones. It would greatly improve bups flexibility allowing multi-user system to have per account bups instance.
regards. bartus
See http://blog.artfwo.net/2011/02/writing-policykit-applications-in.html
This prevents the user from typing several times his password.
In gtk.py:497 the call to get_job() for anacron returns some good value, so another schedulers, like systemctl are not checked anymore.
I'm looking at bups, and founds that there's an error when clicking the "Browse backups" button:
Could not mount filesystem
Traceback (most recent call last):
File "…/bups/bin/../bups/gtk.py", line 875, in do_mount
manager.mount(callbacks)
File "…/bups/bin/../bups/manager.py", line 128, in mount
'onerror': lambda msg, ctx: callbacks["onerror"](msg)
File "…/bups/bin/../bups/manager.py", line 197, in mount_parents
self.bup.set_dir(last_mount_path)
File "…/bups/bin/../bups/worker.py", line 42, in set_dir
os.environ['BUP_DIR'] = bup_dir
File "…/pyenv/2.7.9/lib/python2.7/os.py", line 473, in __setitem__
putenv(key, item)
TypeError: must be string, not None
That's because there are no mounts / backups configured with it.
(I was looking for some functionality to browse my existing backup repo/branches, but it seems like bups will not fit my needs. I am using bup-fuse manually for this currently.)
I like bups very much. It looks good and the idea meets my expectation of how bup GUI should be. However, I being looking through the code an saw some potential for improvements. I would like to refactor and improve the code. Depending on time, I could also add something useful. This changes would mean more or less bigger patches, so do you think it will be possible to integrate them back, in case you are happy with the quality? I'm just asking because I'm not sure if I should make something new, taking the inspiration from your idea, or just to start refactoring your code. What do you think?
Excludes based on patterns/paths per directory are a nice thing to have, however sometimes it makes sense to have a global set of exclude patterns/paths (at least that's how I like to organize my backups).
Those global excludes should be maintained in a listview (maybe even two, one for directories, one for patterns) instead of a comma-separated textview to keep a "easy to maintain" state.
The way you are hardcoding the path it seems to suggest it will only work with x11-ssh-askpass, and not one of the alternatives like openssh-askpass or lxqt-openssh-askpass. Not sure if there is a clever way to work around that.
After editing the name of a backup, the corresponding name in the backup list doesn't get updated to the new name.
kde/plasma
manjaro
bups 0.8.1-2
all of the job labels for the 'Backup Status' tray pop-up are AWOL
this was mentioned before however it appears the issue was closed, then deleted
Any interest in a conda package?
I try to create an AUR package in Archlinux, and I try to run python2 setup.py
got an error
...
/usr/bin/python2 -O /tmp/tmpj0_y5z.py
removing /tmp/tmpj0_y5z.py
running install_scripts
creating /home/guten/dev/one/aur/bups/pkg/bups/usr/bin
copying build/scripts-2.7/bups -> /home/guten/dev/one/aur/bups/pkg/bups/usr/bin
changing mode of /home/guten/dev/one/aur/bups/pkg/bups/usr/bin/bups to 755
running install_data
creating /home/guten/dev/one/aur/bups/pkg/bups/usr/share
creating /home/guten/dev/one/aur/bups/pkg/bups/usr/share/applications
copying bin/bups.desktop -> /home/guten/dev/one/aur/bups/pkg/bups/usr/share/applications
creating /home/guten/dev/one/aur/bups/pkg/bups/usr/share/locale
creating /home/guten/dev/one/aur/bups/pkg/bups/usr/share/locale/fr
creating /home/guten/dev/one/aur/bups/pkg/bups/usr/share/locale/fr/LC_MESSAGES
error: can't copy 'locale/fr/LC_MESSAGES/bups.mo': doesn't exist or not a regular file
I only found one bups.po
file
$ ls bups-0.4.1/locale/fr/LC_MESSAGES/
bups.po
Since many major linux distributions heavily depend on systemd - if one likes it or not. It is usually preinstalled. Therefore I would suggest to include systemd-timer (https://wiki.archlinux.org/index.php/Systemd/Timers) support for the periodic backups instead or in supplement to anacron.
Hi there,
thanks for making bups, I use it on a daily basis.
Now as Python 2 is deprecated, are there any plans for a migration to Python 3?
Best regards
Constantin
Hi,
Bups lacks installation instructions.
How would one go about getting dependancies for bups using debian?
A pip package would be nice too.
Add crontab support
GTK, Python, Git all work on Windows. How much would it take to support Windows? If you outline the steps, I could take a look. Thanks!
Be able to backup each 2 hours, each month, etc...
Don't know exactly how to implement this (e.g. the UI).
It took me several attempts to setup bups, it seemed to abort when it encountered errors due to some files.
.dbus
: For what ever reason this folder in the user directory is unaccessible, this is something most users are not aware of. As a workaround one can of course add ~/.dbus
on the exclude list.read Linux attr: [Errno 13] Permission denied: '/home/username/.dbus/'
Traceback (most recent call last):
File "/usr/lib/bup/cmd/bup-index", line 269, in <module>
update_index(rp, excluded_paths, exclude_rxs, xdev_exceptions=xexcept)
File "/usr/lib/bup/cmd/bup-index", line 164, in update_index
wi.add(path, pst, meta_ofs, hashgen=fake_hash)
File "/usr/lib/bup/bup/index.py", line 565, in add
self._add(ename, e)
File "/usr/lib/bup/bup/index.py", line 533, in _add
% (''.join(ename), ''.join(self.lastfile)))
.Private
. I don't know what that error means, but since bup takes up the unencrypted files anyways, I put it on my exclude list.bup.index.Error: '/home/username/.Private' must come before '/home/username/.Private'
These are issues that many users will encounter and that are not bup/bups' fault. There may even be other system software that creates root-owned files in home (as pulseaudio did). Since these errors are caused by individual files, I wonder whether it makes sense to abort backing up all other files, or whether these errors should be handled somehow?
Show a prompt about the error and ask the user whether to continue:
[Abort] [Continue] [Continue and add files … on exclude list]
Or just continue backing up other files first and show a summary of not backuped files.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.