Automated backups
A tool for all your back-ups, internal and external!

Keep your Odoo data safe with this module. Take automated back-ups, remove them automatically and even write them to an external server through an encrypted tunnel. You can even specify how long local backups and external backups should be kept, automatically!
Connect with an FTP Server
Keep your data safe, through an SSH tunnel!
Want to go even further and write your backups to an external server? You can with this module! Specify the credentials to the server, specify a path and everything will be backed up automatically. This is done through an SSH (encrypted) tunnel, thanks to pysftp, so your data is safe!

Test connection
Checks your credentials in one click


Want to make sure if the connection details are correct and if Odoo can automatically write them to the remote server? Simply click on the 'Test SFTP Connection' button and you will get message telling you if everything is OK, or what is wrong!
E-mail on backup failure
Stay informed of problems, automatically!
Do you want to know if the database backup failed? Check the checkbox 'Auto. E-mail on backup fail' and fill in your e-mail. Every time a backup fails you will get an e-mail in your mailbox with technical details.

Contact / Support
Need help or want extra features?
Need help with the configuration or want this module to have more functionalities? Please create a bug report on the Github issue tracker
Please log in to comment on this module
Report comment
Any abuse of this reporting system will be penalizedVery good - thanks !!!
Hello Yenthe, thanks a lot for this - it saved me a lot of headache regarding backups... But I would like to add some comments: 1) when installing on Odoo 11 Community I had similar problems as others - but reading the Odoo error messages / log file is in the meantime my "best friend" - the modul requires paramiko so : sudo pip3 install paramiko (on an Ubuntu 18.04 server) - solved the problem. 2) I found it but maybe you could give a hint in the settings form - the difference between 'zip' and 'dump' - 'zip' includes the filestore and 'dump' doesn't. On the first run I choose 'zip' and wondered how long it took ... and my zip file was 4.5 GB ... because my filestore is so big. Nevertheless this gives me the possibility to run a dump (20 MB in my case) twice a day and a zip at night - that's very good for my purposes. 3) A last hint from my side - if you run your Odoo instance - like I do - in e.g. a Virtualbox (Ubuntu 18.04 server) and your backup and / or filestore folder is on the host (Ubuntu 18.04 server) you have to carefully check the permissions of the folders / mounts. To avoid any conflicts on my setup the user 'odoo' exists as well "in the box" as on the host and has on both instances the same uid/guid. Furthermore he of course is the owner of the directories for the filestore as well as the backups ...
Good
I have de same error listed below, but after install all the dependencies and get the error, I rebooted the odoo instance and the errors go away. Error: ...Exception: Module loading auto_backup failed: file auto_backup\security/ir.model.access.csv could not be processed: No matching record found for external id 'model_db_backup' in field 'Object' Missing required value for the field 'Object' (model_id) No matching record found for external id 'model_db_backup' in field 'Object' Missing required value for the field 'Object' (model_id) Dependencies: - sudo apt-get install build-essential libssl-dev libffi-dev python3-dev - pip install cryptography (python 2.x) - pip install paramiko (python 2.x) - pip3 install cryptography (python 3.x) - pip3 install paramiko (python 3.x)
good
good
Installation killed Odoo 11 completely
Trying to safeguard my data via this module did the complete opposite. Odoo 11 is not working anymore, and I am trying to get it back to work.
I like it
Hi Yenthe, I have an error, how to fix ? Thanks for support. Odoo Server Error: Traceback (most recent call last): File "/usr/lib/python3/dist-packages/odoo/tools/safe_eval.py", line 348, in safe_eval return unsafe_eval(c, globals_dict, locals_dict) File "", line 1, in File "/usr/lib/python3/dist-packages/odoo/addons/auto_backup/models/db_backup.py", line 152, in schedule_backup os.makedirs(rec.folder) File "/usr/lib/python3.5/os.py", line 231, in makedirs makedirs(head, mode, exist_ok) File "/usr/lib/python3.5/os.py", line 241, in makedirs mkdir(name, mode) PermissionError: [Errno 13] Permission denied: '/odoo' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/lib/python3/dist-packages/odoo/http.py", line 646, in _handle_exception return super(JsonRequest, self)._handle_exception(exception) File "/usr/lib/python3/dist-packages/odoo/http.py", line 307, in _handle_exception raise pycompat.reraise(type(exception), exception, sys.exc_info()[2]) File "/usr/lib/python3/dist-packages/odoo/tools/pycompat.py", line 87, in reraise raise value File "/usr/lib/python3/dist-packages/odoo/http.py", line 683, in dispatch result = self._call_function(**self.params) File "/usr/lib/python3/dist-packages/odoo/http.py", line 339, in _call_function return checked_call(self.db, *args, **kwargs) File "/usr/lib/python3/dist-packages/odoo/service/model.py", line 97, in wrapper return f(dbname, *args, **kwargs) File "/usr/lib/python3/dist-packages/odoo/http.py", line 332, in checked_call result = self.endpoint(*a, **kw) File "/usr/lib/python3/dist-packages/odoo/http.py", line 927, in __call__ return self.method(*args, **kw) File "/usr/lib/python3/dist-packages/odoo/http.py", line 512, in response_wrap response = f(*args, **kw) File "/usr/lib/python3/dist-packages/odoo/addons/web/controllers/main.py", line 928, in call_button action = self._call_kw(model, method, args, {}) File "/usr/lib/python3/dist-packages/odoo/addons/web/controllers/main.py", line 916, in _call_kw return call_kw(request.env[model], method, args, kwargs) File "/usr/lib/python3/dist-packages/odoo/api.py", line 689, in call_kw return call_kw_multi(method, model, args, kwargs) File "/usr/lib/python3/dist-packages/odoo/api.py", line 680, in call_kw_multi result = method(recs, *args, **kwargs) File "/usr/lib/python3/dist-packages/odoo/addons/base/ir/ir_cron.py", line 75, in method_direct_trigger self.sudo(user=cron.user_id.id).ir_actions_server_id.run() File "/usr/lib/python3/dist-packages/odoo/addons/base/ir/ir_actions.py", line 536, in run res = func(action, eval_context=eval_context) File "/usr/lib/python3/dist-packages/odoo/addons/base/ir/ir_actions.py", line 417, in run_action_code_multi safe_eval(action.sudo().code.strip(), eval_context, mode="exec", nocopy=True) # nocopy allows to return 'action' File "/usr/lib/python3/dist-packages/odoo/tools/safe_eval.py", line 371, in safe_eval pycompat.reraise(ValueError, ValueError('%s: "%s" while evaluating\n%r' % (ustr(type(e)), ustr(e), expr)), exc_info[2]) File "/usr/lib/python3/dist-packages/odoo/tools/pycompat.py", line 86, in reraise raise value.with_traceback(tb) File "/usr/lib/python3/dist-packages/odoo/tools/safe_eval.py", line 348, in safe_eval return unsafe_eval(c, globals_dict, locals_dict) File "", line 1, in File "/usr/lib/python3/dist-packages/odoo/addons/auto_backup/models/db_backup.py", line 152, in schedule_backup os.makedirs(rec.folder) File "/usr/lib/python3.5/os.py", line 231, in makedirs makedirs(head, mode, exist_ok) File "/usr/lib/python3.5/os.py", line 241, in makedirs mkdir(name, mode) ValueError: : "13 Permission denied" while evaluating 'model.schedule_backup()'
like it.
hope it is useful.
Doesn't Install
Tried to install , and got the following error : Error: Odoo Server Error Traceback (most recent call last): File "C:\Program Files (x86)\Odoo 11.0\server\odoo\http.py", line 646, in _handle_exception return super(JsonRequest, self)._handle_exception(exception) File "C:\Program Files (x86)\Odoo 11.0\server\odoo\http.py", line 307, in _handle_exception raise pycompat.reraise(type(exception), exception, sys.exc_info()[2]) File "C:\Program Files (x86)\Odoo 11.0\server\odoo\tools\pycompat.py", line 87, in reraise raise value File "C:\Program Files (x86)\Odoo 11.0\server\odoo\http.py", line 683, in dispatch result = self._call_function(**self.params) File "C:\Program Files (x86)\Odoo 11.0\server\odoo\http.py", line 339, in _call_function return checked_call(self.db, *args, **kwargs) File "C:\Program Files (x86)\Odoo 11.0\server\odoo\service\model.py", line 97, in wrapper return f(dbname, *args, **kwargs) File "C:\Program Files (x86)\Odoo 11.0\server\odoo\http.py", line 332, in checked_call result = self.endpoint(*a, **kw) File "C:\Program Files (x86)\Odoo 11.0\server\odoo\http.py", line 927, in __call__ return self.method(*args, **kw) File "C:\Program Files (x86)\Odoo 11.0\server\odoo\http.py", line 512, in response_wrap response = f(*args, **kw) File "C:\Program Files (x86)\Odoo 11.0\server\odoo\addons\web\controllers\main.py", line 928, in call_button action = self._call_kw(model, method, args, {}) File "C:\Program Files (x86)\Odoo 11.0\server\odoo\addons\web\controllers\main.py", line 916, in _call_kw return call_kw(request.env[model], method, args, kwargs) File "C:\Program Files (x86)\Odoo 11.0\server\odoo\api.py", line 689, in call_kw return call_kw_multi(method, model, args, kwargs) File "C:\Program Files (x86)\Odoo 11.0\server\odoo\api.py", line 680, in call_kw_multi result = method(recs, *args, **kwargs) File "", line 2, in button_immediate_install File "C:\Program Files (x86)\Odoo 11.0\server\odoo\addons\base\module\module.py", line 71, in check_and_log return method(self, *args, **kwargs) File "C:\Program Files (x86)\Odoo 11.0\server\odoo\addons\base\module\module.py", line 448, in button_immediate_install return self._button_immediate_function(type(self).button_install) File "C:\Program Files (x86)\Odoo 11.0\server\odoo\addons\base\module\module.py", line 541, in _button_immediate_function modules.registry.Registry.new(self._cr.dbname, update_module=True) File "C:\Program Files (x86)\Odoo 11.0\server\odoo\modules\registry.py", line 85, in new odoo.modules.load_modules(registry._db, force_demo, status, update_module) File "C:\Program Files (x86)\Odoo 11.0\server\odoo\modules\loading.py", line 343, in load_modules loaded_modules, update_module) File "C:\Program Files (x86)\Odoo 11.0\server\odoo\modules\loading.py", line 242, in load_marked_modules loaded, processed = load_module_graph(cr, graph, progressdict, report=report, skip_modules=loaded_modules, perform_checks=perform_checks) File "C:\Program Files (x86)\Odoo 11.0\server\odoo\modules\loading.py", line 156, in load_module_graph _load_data(cr, module_name, idref, mode, kind='data') File "C:\Program Files (x86)\Odoo 11.0\server\odoo\modules\loading.py", line 94, in _load_data tools.convert_file(cr, module_name, filename, idref, mode, noupdate, kind, report) File "C:\Program Files (x86)\Odoo 11.0\server\odoo\tools\convert.py", line 782, in convert_file convert_csv_import(cr, module, pathname, fp.read(), idref, mode, noupdate) File "C:\Program Files (x86)\Odoo 11.0\server\odoo\tools\convert.py", line 829, in convert_csv_import raise Exception(_('Module loading %s failed: file %s could not be processed:\n %s') % (module, fname, warning_msg)) Exception: Module loading auto_backup failed: file auto_backup\security/ir.model.access.csv could not be processed: No matching record found for external id 'model_db_backup' in field 'Object' Missing required value for the field 'Object' (model_id) No matching record found for external id 'model_db_backup' in field 'Object' Missing required value for the field 'Object' (model_id)
can not install on docker
i use
- docker-compose on odoo11,
- docker : bullseye
i thing because I can not install paramiko inside docker container
any insight.. how to install inside-docker please
Thanks in advance Yenthe
Corrupt Zip File
I have installed this module on odoo 11 ce and it worked perfectly until I configured Nginx and set list_db=False in the config file.
In the method that fetches the list of DBs I replaced its content by a returning a static list like this : return ['my_db_name']. Without this customization I was getting AccessDenied: Access denied error.
Now I am getting a zip file with 0 as size
Connection Test Failed!
Connection Test Failed! Here is what we got instead: from_buffer() cannot return the address of the raw string within a str or unicode or bytearray object
Does not work in Oddo 11 with python 3.6
Please could you give us a solution in order to install your module in a Bitnami Odoo 11 installation working with odoo 3.6?
size mismatch
We couldn't write the file to the remote server. Error: size mismatch in put! 0
issue loading
Error: Odoo Server Error Traceback (most recent call last): File "C:\Program Files (x86)\Odoo 11.0\server\odoo\addons\auto_backup\models\db_backup.py", line 24, in import paramiko ModuleNotFoundError: No module named 'paramiko' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "C:\Program Files (x86)\Odoo 11.0\server\odoo\http.py", line 650, in _handle_exception return super(JsonRequest, self)._handle_exception(exception) File "C:\Program Files (x86)\Odoo 11.0\server\odoo\http.py", line 310, in _handle_exception raise pycompat.reraise(type(exception), exception, sys.exc_info()[2]) File "C:\Program Files (x86)\Odoo 11.0\server\odoo\tools\pycompat.py", line 87, in reraise raise value File "C:\Program Files (x86)\Odoo 11.0\server\odoo\http.py", line 692, in dispatch result = self._call_function(**self.params) File "C:\Program Files (x86)\Odoo 11.0\server\odoo\http.py", line 342, in _call_function return checked_call(self.db, *args, **kwargs) File "C:\Program Files (x86)\Odoo 11.0\server\odoo\service\model.py", line 97, in wrapper return f(dbname, *args, **kwargs) File "C:\Program Files (x86)\Odoo 11.0\server\odoo\http.py", line 335, in checked_call result = self.endpoint(*a, **kw) File "C:\Program Files (x86)\Odoo 11.0\server\odoo\http.py", line 936, in __call__ return self.method(*args, **kw) File "C:\Program Files (x86)\Odoo 11.0\server\odoo\http.py", line 515, in response_wrap response = f(*args, **kw) File "C:\Program Files (x86)\Odoo 11.0\server\odoo\addons\web\controllers\main.py", line 938, in call_button action = self._call_kw(model, method, args, {}) File "C:\Program Files (x86)\Odoo 11.0\server\odoo\addons\web\controllers\main.py", line 926, in _call_kw return call_kw(request.env[model], method, args, kwargs) File "C:\Program Files (x86)\Odoo 11.0\server\odoo\api.py", line 689, in call_kw return call_kw_multi(method, model, args, kwargs) File "C:\Program Files (x86)\Odoo 11.0\server\odoo\api.py", line 680, in call_kw_multi result = method(recs, *args, **kwargs) File "", line 2, in button_immediate_install File "C:\Program Files (x86)\Odoo 11.0\server\odoo\addons\base\module\module.py", line 71, in check_and_log return method(self, *args, **kwargs) File "C:\Program Files (x86)\Odoo 11.0\server\odoo\addons\base\module\module.py", line 449, in button_immediate_install return self._button_immediate_function(type(self).button_install) File "C:\Program Files (x86)\Odoo 11.0\server\odoo\addons\base\module\module.py", line 542, in _button_immediate_function modules.registry.Registry.new(self._cr.dbname, update_module=True) File "C:\Program Files (x86)\Odoo 11.0\server\odoo\modules\registry.py", line 85, in new odoo.modules.load_modules(registry._db, force_demo, status, update_module) File "C:\Program Files (x86)\Odoo 11.0\server\odoo\modules\loading.py", line 380, in load_modules loaded_modules, update_module, models_to_check) File "C:\Program Files (x86)\Odoo 11.0\server\odoo\modules\loading.py", line 274, in load_marked_modules perform_checks=perform_checks, models_to_check=models_to_check File "C:\Program Files (x86)\Odoo 11.0\server\odoo\modules\loading.py", line 137, in load_module_graph load_openerp_module(package.name) File "C:\Program Files (x86)\Odoo 11.0\server\odoo\modules\module.py", line 368, in load_openerp_module __import__('odoo.addons.' + module_name) File "C:\Program Files (x86)\Odoo 11.0\server\odoo\modules\module.py", line 82, in load_module exec(open(modfile, 'rb').read(), new_mod.__dict__) File "", line 3, in File "C:\Program Files (x86)\Odoo 11.0\server\odoo\addons\auto_backup\models\__init__.py", line 3, in from . import db_backup File "C:\Program Files (x86)\Odoo 11.0\server\odoo\addons\auto_backup\models\db_backup.py", line 27, in 'This module needs paramiko to automatically write backups to the FTP through SFTP. Please install paramiko on your system. (sudo pip3 install paramiko)') ImportError: This module needs paramiko to automatically write backups to the FTP through SFTP. Please install paramiko on your system. (sudo pip3 install paramiko)
problems to install module
Error: Odoo Server Error Traceback (most recent call last): File "/home/soefitec/Developments/odoo11/odoo/odoo/http.py", line 650, in _handle_exception return super(JsonRequest, self)._handle_exception(exception) File "/home/soefitec/Developments/odoo11/odoo/odoo/http.py", line 310, in _handle_exception raise pycompat.reraise(type(exception), exception, sys.exc_info()[2]) File "/home/soefitec/Developments/odoo11/odoo/odoo/tools/pycompat.py", line 87, in reraise raise value File "/home/soefitec/Developments/odoo11/odoo/odoo/http.py", line 692, in dispatch result = self._call_function(**self.params) File "/home/soefitec/Developments/odoo11/odoo/odoo/http.py", line 342, in _call_function return checked_call(self.db, *args, **kwargs) File "/home/soefitec/Developments/odoo11/odoo/odoo/service/model.py", line 97, in wrapper return f(dbname, *args, **kwargs) File "/home/soefitec/Developments/odoo11/odoo/odoo/http.py", line 335, in checked_call result = self.endpoint(*a, **kw) File "/home/soefitec/Developments/odoo11/odoo/odoo/http.py", line 936, in __call__ return self.method(*args, **kw) File "/home/soefitec/Developments/odoo11/odoo/odoo/http.py", line 515, in response_wrap response = f(*args, **kw) File "/home/soefitec/Developments/odoo11/odoo/addons/web/controllers/main.py", line 935, in call_button action = self._call_kw(model, method, args, {}) File "/home/soefitec/Developments/odoo11/odoo/addons/web/controllers/main.py", line 923, in _call_kw return call_kw(request.env[model], method, args, kwargs) File "/home/soefitec/Developments/odoo11/odoo/odoo/api.py", line 689, in call_kw return call_kw_multi(method, model, args, kwargs) File "/home/soefitec/Developments/odoo11/odoo/odoo/api.py", line 680, in call_kw_multi result = method(recs, *args, **kwargs) File "", line 2, in button_immediate_install File "/home/soefitec/Developments/odoo11/odoo/odoo/addons/base/module/module.py", line 71, in check_and_log return method(self, *args, **kwargs) File "/home/soefitec/Developments/odoo11/odoo/odoo/addons/base/module/module.py", line 448, in button_immediate_install return self._button_immediate_function(type(self).button_install) File "/home/soefitec/Developments/odoo11/odoo/odoo/addons/base/module/module.py", line 541, in _button_immediate_function modules.registry.Registry.new(self._cr.dbname, update_module=True) File "/home/soefitec/Developments/odoo11/odoo/odoo/modules/registry.py", line 85, in new odoo.modules.load_modules(registry._db, force_demo, status, update_module) File "/home/soefitec/Developments/odoo11/odoo/odoo/modules/loading.py", line 371, in load_modules loaded_modules, update_module, models_to_check) File "/home/soefitec/Developments/odoo11/odoo/odoo/modules/loading.py", line 265, in load_marked_modules perform_checks=perform_checks, models_to_check=models_to_check File "/home/soefitec/Developments/odoo11/odoo/odoo/modules/loading.py", line 172, in load_module_graph _load_data(cr, module_name, idref, mode, kind='data') File "/home/soefitec/Developments/odoo11/odoo/odoo/modules/loading.py", line 95, in _load_data tools.convert_file(cr, module_name, filename, idref, mode, noupdate, kind, report) File "/home/soefitec/Developments/odoo11/odoo/odoo/tools/convert.py", line 785, in convert_file convert_csv_import(cr, module, pathname, fp.read(), idref, mode, noupdate) File "/home/soefitec/Developments/odoo11/odoo/odoo/tools/convert.py", line 832, in convert_csv_import raise Exception(_('Module loading %s failed: file %s could not be processed:\n %s') % (module, fname, warning_msg)) Exception: Fallo en la carga del módulo auto_backup: no se pudo procesar el archivo auto_backup/security/ir.model.access.csv: No se han encontrado registros coincidentes para id. externo 'model_db_backup' en el campo 'Object' Falta el valor requerido para el campo 'Object' (model_id) No se han encontrado registros coincidentes para id. externo 'model_db_backup' en el campo 'Object' Falta el valor requerido para el campo 'Object' (model_id)
Nice Extension
This auto backup is working ok. Please extract the folder at below mentioned location; C:\Program Files (x86)\Odoo 11.0\server\addons (Recommended Path) Usually we are extracting custom extension on below path but auto backup will work with above mentioned path. You will find this addons folder as empty. C:\Program Files (x86)\Odoo 11.0\server\odoo\addons (Do not copy at this path) Kindly delete previously copied auto backup folder from above path and use recommended path. I hope this will solve autobackup installation issue. Faraz
Not working
Can't install on Odoo 11 community over python 3, any idea
Not working Odoo 11.0 Enterprise
I have same problem when installing your app. Odoo instance crashes. I'm using Python 3.5. Any change that your app is not yet compatible with Python 3.*?
Very good
Hi, Thanks for your good job. Just one question? is this possible to use ssh key to make backup ?
I install pysft using bellow command set and after that my odoo 11 instance stop working and i unable to install your module.
sudo apt install python3-pip pip3 install -U pip sudo pip3 install pysftp
Blank Page after login, only showing odoo logo
Sorry to have 1 star on this, I installed Odoo 11 using your script, and when I moved this to my addon folder, it would give me a blank page when I login. Iv'e imported other modules that work, so I'm not sure why is this happening. Would be great if I can find a fix for this
when the Module will support python 3 in odoo11?
when the Module will support python 3 in odoo11?
i can't use it in odoo11 with python3.5
is this not Support Python3.5?