gromoslaw-kroczka / home-server-backup Goto Github PK
View Code? Open in Web Editor NEWMulti-purpose Backup script dedicated for Home Servers
License: GNU General Public License v3.0
Multi-purpose Backup script dedicated for Home Servers
License: GNU General Public License v3.0
It will be useful to have built-in option to remove backups (not daily and archive ones) from both local and remote directories.
This is a nice looking backup script! It would be awesome if you were able to add a "local exclusions" array to your parameters script.
For example, I have a photo cache in my home directory that I don't want to back up and it takes up a lot of space. It would be nice if I could specify a list of folders I don't want to be backed up.
Is your feature request related to a problem? Please describe.
Currently to execute script in other computer there is need to download whole repository, enable execution of main script and then execute it.
Describe the solution you'd like
Simpler download & run option should be available.
Describe the bug
Daily-backup cleaner returns error message:
(!) Error during daily-backup cleaner (!)
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Daily-backup cleaner performed
message
Screenshots / Logs
find: ‘/media/external-HDD-500GB/backup/daily/2023-06-20_01-00-01’: No such file or directory
#########################
(!) Error during daily-backup cleaner (!)
#########################
Additional context
Bug should be removed taking guidelines from for example -> How to find and delete directory recursively on Linux or Unix-like system
Is your feature request related to a problem? Please describe.
Current version of script echos "Backup completed" independently of the actual result of the script.
Describe the solution you'd like
Conditional messages - depend if script success or not should be added.
README.md file in current stage is missing complete manual how to use backup script and how to modify it's parameters.
Growing list of TODOs also should be included there.
Add functionality of sum-up Gotify notification with backup results -> backuped entities, with sizes of them + total duration.
Currently "daily-cleaner" is configured directly in the core of the script. Parameters how many daily backups keep locally / in the cloud should be accessible and manage in parameters.sh
Is your feature request related to a problem? Please describe.
Below part of parameters.sh
brings unnecessary configuration step (which could be avoided):
(...)
03. Associative Array
Expend list of docker volumes to correspond with number of your Docker Volumes.
declare -x -a volumeDockers=( 'volumeDocker00' 'volumeDocker01' )(...)
Describe the solution you'd like
Associative Array in Configuration file should be implemented directly in homeServerBackup.sh to avoid unnecessary configuration action.
Is your feature request related to a problem? Please describe.
Currently script preserve X previous daily backups locally and Y in the cloud (as configured in parameters.sh).
With growing data it will result in fast growth in size of the backup files.
Describe the solution you'd like
Keeping previous backups help to avoid overwriting valuable data with corrupted / missing one (before noticed that something broken). The same (or at least similar) protection we could assure by simply measuring sizes of backups old vs new and preserving previous one (not deleting it) only when new backup is smaller in size thank the old one.
We could measure backup as a whole, or separate parts of it, as required.
I tried a proof of concept for my setup and realised that the configuration expects individual docker containers name in order to stop them and perform the backups.
I see a few limitations with this approach
So, I am not sure if this doable or not but a possibility to utilize docker compose
in order to stop containers would be great. I imagine most of the production loads might be running via docker-compose.yml
.
PS: apologies if this was already covered in your documentation; if you can point me to the right direction, that would be great.
Currently dev
type required separate parameters-dev.sh
which cannot cover 100% functionality of the code (for example daily-cleaners and daily-archiver). By increasing configurability of instant
and daily
types trough separate functionality arrays this problem should be solved.
I am fairly new to the whole homelab thing and this looks like a project which could help me solve backup situation coz my life has started to rely on services I am hosting like paperless-ngx, actual budget, etc.
What would be super helpful is to know how to restore the backups in case such a mishap do happen.
Gotify notify with list of parameters specified in -dev mode even when perform script in daily mode?
Is your feature request related to a problem? Please describe.
Currently script backups only docker volumes and bind mounts. Many Apps include own backup systems, for example:
Those backups should be lighter in size and easier to use for example to restore in different environment.
Describe the solution you'd like
Add option for custom backups of popular applications (as described above)
Describe alternatives you've considered
This is just additional option, to be implemented
Additional context
I've recently moved to Proxmox and start using whole VM snapshots as main backup. In this scenario per-app-backups will be supplementary ones.
Additional challange: implement that using Python scripting?
Add testing / debug mode when different parameters file is imported => possibility to test new features without editing production parameters.
Cloud backup is working without periodical clean-up. That feature should be added.
Describe the bug
Cloud daily-cleaner doesn't remove directories, just deletes it's content => old empty folders are still present.
To Reproduce
Use cloud daily-cleaner
functionality of the script
Expected behavior
Empty folders should be removed right after removing content from them.
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.